
操作系统
vivi_wang_11
这个作者很懒,什么都没留下…
展开
-
管程
管程的基本思想是,将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。 从语言的角度看,管程主要有以下特性: (1)模块化。管程是一个基本程序单位,可以单独编译; (2)抽象数据类型。管程是中不仅有数据,而且有对数据的操作; (3)信息掩蔽。管程外可以调用管程内部定义的一些函数,但函数转载 2012-04-17 09:47:57 · 504 阅读 · 0 评论 -
管道通信
例:用C语言编写一个程序,建立一个pipe,同时父进程生成一个子进程,子进程向pipe 中写入一字符串,父进程从pipe中读取该字符串。#include main( ){ int x, fd[2]; char buf[30], s[30]; pipe(fd); x = fork( ) ; if( x == 0 ) { sprintf( buf,原创 2012-04-17 10:45:29 · 1482 阅读 · 0 评论 -
死锁
一.死锁发生的条件死锁的发生必须具备下列4个必要条件:–互斥:任一时刻只允许一个进程使用资源–请求和保持:进程在请求其余资源时,不主动释放已经占用的资源–非剥夺:进程已经占用的资源,不会被强制剥夺–环路等待:环路中的每一条边是进程在请求另一进程已经占有的资源。二.处理死锁的方法1.预防死锁:破坏四个必要条件中的一个或几个条件; 易于原创 2012-04-17 21:37:19 · 672 阅读 · 0 评论 -
虚拟内存的作用
虚拟内存是计算机系统内存管理的一种技术。别称虚拟存储器(Virtual Memory)。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。电脑中所运行的程序均需经由内存执行,若执行的程序很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,转载 2012-05-02 21:37:28 · 999 阅读 · 0 评论 -
僵尸进程和孤儿进程
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有转载 2012-04-17 11:24:17 · 1768 阅读 · 0 评论 -
线程和进程的区别
1.一个程序至少有一个进程,一个进程至少有一个线程. 2.线程的划分尺度小于进程,使得多线程程序的并发性高。3.进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。4.线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线转载 2012-05-07 11:27:01 · 502 阅读 · 0 评论 -
存储器管理——连续分配方式
连续分配方式:为一个用户程序分配一个连续的内存空间。一.单一连续分配二.固定分区分配 1.分区大小相等 2.分区大小不等三.动态分区分配 1.首次适应算法(FF/first fit) 2.循环首次适应算法(next fit) 3.最佳适应算法(best fit) 从最小的分区开始分配 4.最坏适原创 2012-04-23 17:58:08 · 808 阅读 · 0 评论 -
调度算法小结
处理机管理的工作是对CPU进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。CPU可分配的资源是在处理器上的执行时间,分配的途径是调度。处理机调度的层次:高级调度、低级调度、中级调度调度算法就是一种资源分配算法。有的算法适用于作业调度,有的算法适用于进程调度,有的两者都适应。1) 先来先服务(FCFS/first com原创 2012-04-23 14:20:21 · 3801 阅读 · 0 评论