精品文档
1.进程控制块的作用:
进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。(或者说,OS是根据PCB来对并发执行的进程进行控制和管理的)PCB是进程存在的唯一标志。PCB常驻内存。
2.进程控制块中的信息:1)进程标识符:(1)内部标识符(2)外部标识符 2)处理机状态 3)进程调度信息 4)进程控制信息 3.进程控制块的组织方式:
1)链接方式:这是把具有同一状态的PCB,用其中的链接字链接成一个队列。 2)索引方式:系统根据所有进程的状态建立几张索引表。
2.2进程控制:进程控制是进程管理中最基本的功能。它用于创建一个新进程,终止一个已完成的进
程,或去中止一个因出现事件而使其无法运行下去的进程,还可以负责进程运行中的状态转换。
2.2.1进程的创建
1.进程图 P34 子进程可以继承父进程所拥有的资源
2.引起创建进程的事件:(1)用户登录(2)作业调度(3)提供服务(4)应用请求 3.进程的创建:一旦操作系统发现了要求创建新进程的事件后,便调用进程创建原语
Creat()按下述步骤创建一个新进程。
(1)申请空白PCB (2)为新进程分配资源 (3)初始化进程控制块 (4)将新进程插入就绪队列
2.2.2进程的终止 1.引起进程终止的事件
1)正常结束:P35 批处理系统中,通常在程序的最后安排一条Holt指令来终止系统的调用;在分时系统
中,用户可利用Logsoff去表示进程运行完毕。
2)异常结束
3)外界干预:①操作员或操作系统干预 ②父进程请求 ③父进程终止
2.进程的终止过程:
(1)根据被终止进程的标识符,从PCB集合中检索出该进程的PCB。从中读出该进程的状
态。
(2)若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被
终止后应重新进行调度。
(3)若该进程还有子孙进程,应将起所有子孙进程予以终止,以防他们成为不可控的进程。 (4)将被终止进程所拥有的全部资源,或者归还其父进程,或者归还给系统。
(5)将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息。
2.2.3进程的阻塞与唤醒 1.引起进程阻塞和唤醒的事件:
收集于网络,如有侵权请联系管理员删除
精品文档
1)请求系统服务 2)启动某种操作 3)新数据尚未到达 4)无新工作可做
2.进程阻塞过程:P37 阻塞原语block 进程的阻塞是进程自身的一种主动行为。
3.进程唤醒过程:首先把被阻塞的进程从等待事件的阻塞队列中移出,将其PCB中的现行状态由阻
塞改为就绪,然后再将该PCB插入到就绪队列中。
注:5种原语:P原语、V原语、block原语、wakeup原语、进程调度原语 2.2.4进程的挂起与激活
1.进程的挂起:挂起原语(suspend())的执行过程是:首先检查被挂起进程的状态,若处于活动
就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。
2.进程的激活过程:激活原语(active())先将进程从外存调入内存,检查该进程的现行状态,若
是静止就绪,将之改为活动就绪;若为静止阻塞,便改为活动阻塞。
2.3进程同步
进程同步的主要任务,是使并发执行的诸进程之间能有效地共享资源和互相合作,从而使程序的执行具有可再现性。
2.3.1进程同步的基本概念
1.两种形式的制约关系:(1)间接相互制约关系(互斥)(2)直接相互制约关系(同步) 2.临界资源
许多硬件资源如打印机、磁带机等都属于临界资源。诸进程之间应采取互斥方式,实现对这种资源的共享。
生产者—消费者P39
3.临界区:每个进程中访问临界资源的那段代码称为临界区。P40
进入区、退出区、剩余区的概念P40(临界区前加P原语,临界区后面加V原语)
4.同步机制应遵循的规则:
(1)空闲让进 (2)忙则等待 (3)有限等待 (4)让权等待
2.3.2信号量机制P41
1.整型信号量 2.记录型信号量
3.AND型信号量:AND同步机制的基本思想是:要么全部分配到进程,要么一个也不分配。
收集于网络,如有侵权请联系管理员删除
精品文档
4.信号量集 2.3.3信号量的应用
1.利用信号量实现进程互斥:在利用信号量机制实现进程互斥时应注意,wait(mutex)和signal
(mutex)必须成对地出现。
2.利用信号量实现前趋关系:
在进程P1中,用S1;signal(S);在进程P2中,用wait(S);S2; 2.4经典进程的同步问题 2.4.1生产者-消费者问题P46
1.利用记录型信号量解决生产者——消费者问题: 2.利用AND信号量解决生产者——消费者问题
2.4.2哲学家进餐问题:(同上,利用两种信号量机制解决P48)
2.5管程机制:虽然信号量机制是一种既方便又有效的进程同步机制,但每个要访问临界资源的进程
都必须自备同步操作wait(S)和signal(S)。这就使大量的同步操作分散在各个进程中,不仅给用户的编程带来麻烦,而且还会因同步操作的使用不当而导致系统死锁。在解决上述问题的过程中,便产生了一种新的进程同步工具——管程。
1.管程的定义:管程简单说就是规范化编写的进程,跟OS无关。管程由三部分组成:①局部于管程
的共享变量说明;②对该数据结构进行操作的一组过程;③对局部于管程的数据设置初始化的语句。(管程相当于围墙,每次只准许一个进程进入管程,从而实现了进程互斥。)
2.条件变量P52
2.5.2利用管程解决生产者—消费者问题P52 2.6进程通信
2.6.1进程通信的类型:P54
1.共享存储器系统:(1)基于共享数据结构的通信方式(2)基于共享存储区的通信方式 2.消息传递系统:以格式化的消息(message)为单位,分为直接通信方式和间接通信方式。
收集于网络,如有侵权请联系管理员删除
精品文档
3.管道通信系统:所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共
享文件,又名pipe文件。
2.6.2消息传递通信的实现方法:
1.直接通信方式:通常,系统提供下述两条通信命令(原语):
Send(Receiver,message);发送一个消息给接收进程; Receive(Sender,message);接收Sender发来的消息;
2.间接通信方式:指进程之间的通信,需要通过作为共享数据结构的实体。该实体用来暂存发送进
程发送给目标进程的消息;接收进程则从该实体中,取出对方发送给自己的消息,通常把这种中间实体称为信箱。
信箱分为:(1)私用信箱:用户进程自己建立,信箱随拥有该信箱的进程结束而结束。
(2)公用信箱:由系统创建,并提供给系统中的所有核准进程使用,采用双向通信
链路的信箱来实现。公用信箱在系统运行期间始终存在。
(3)共享信箱:由某进程创建。
2.6.3消息传递系统实现中的若干问题 1.通信链路
第一种建立通信链路的方式:用显式的“建立连接”命令(原语)请求系统位置建立一条通信链路;在链路使用完后,也用显式方式拆除链路。这种方式主要用于计算机网络中。
第二种方式是利用系统提供的发送命令(原语),系统会自动为止建立一条链路。这种方式主要用于单机系统中。
根据通信链路的连接方法分两类:①点—点连接通信链路 ②多点连接链路 根据通信方式的不同分为两种:①单向通信链路 ②双向链路
2.消息的格式P57
3.进程同步方式:(1)发送进程阻塞、接收进程阻塞
(2)发送进程不阻塞、接收进程阻塞 (3)发送进程和接收进程均不阻塞
2.6.4消息缓冲队列通信机制P58 2.7线程
2.7.1线程的基本概念
1.线程的引入:在操作系统中引入线程的目的,是为了使多个程序能并发执行,以提高资源利用率和
系统吞吐量。那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
收集于网络,如有侵权请联系管理员删除
精品文档
2.线程的属性:
(1)轻型实体(线程控制块TCB) (2)独立调度和分派的基本单位 (3)可并发执行 (4)共享进程资源
3.线程的状态:(1)状态参数P61 (2)线程运行状态P62 4.线程的创建和终止P62 5.多线程OS中的进程:
具有以下属性:(1)作为系统资源分配的单位 (2)可包括多个线程
(3)进程不是一个可执行的实体
2.7.2线程间的同步和通信P63 1.互斥锁(mutex)
2.条件变量:单纯的互斥锁用于短期锁定,主要是用来保证对临界区的互斥进入。而条件变量则用于
线程的长期等待,直至所等待的资源成为可用的。
3.信号量机制:(1)私用信号量 (2)公用信号量 2.7.3内核支持线程和用户级线程P64
2.7.4线程控制:
1.内核支持线程的实现:TCB线程控制块
2.用户级线程的实现:用户级线程是在用户空间实现的。所有的用户级线程都具有相同的结构,它
们都运行在一个中间系统的上面。当前有两种方式实现的中间系统,即运行时系统和内核控制线程。(1)所谓“运行时系统”,实质上是用于管理和控制线程的函数(过程)的集合,其中包括用于创建和撤销线程的函数、线程同步和通信的函数以及实现线程调度的函数等。(2)内核控制线程,这种线程又称为轻型进程LWP(Light Weight Process)
第四章 存储器管理
4.1程序的装入和链接 编辑→编译→链接→装入 4.1.1程序的装入
1.绝对装入方式:绝对地址,既可在编译或汇编时给出,也可由程序员直接赋
予。只适用于单道程序环境。
收集于网络,如有侵权请联系管理员删除
计算机操作系统复习总结-汤子瀛知识讲解
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)