操作系统概念(高等教育出版社,第七版)复习——第三章:进程

基础知识

进程概念

进程是执行中的程序。进程还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。另外,进程通常还包括进程堆栈段(包括临时数据,如函数参数、返回地址和局部变量)和数据段(包括全局变量)。进程还可能包括堆,是在进程运行期间动态分配的内存。

进程与程序是截然不同的两个概念

一个程序可以对应多个进程(Oneprogram can be several processes)

一个进程也可以由多个程序段共同完成一项任务(接力)

进程五个特征(而程序不具备)

动态性:是进程的最基本的特征,表现在进程由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。

并发性:多个进程实体同存于内存中,能在一段时间内同时执行。

独立性:进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。

异步性:指进程按各自独立的、不可预知的速度向前推进;或者说,进程按异步方式运行。

结构特征:从结构上看,进程实体由程序段、数据段以及进程控制块组成。三部分也称为进程影像。

进程状态

新的(new):进程正在被创建。

运行(running):指令正在被执行。

等待(waiting):进程等待某个时间的发生(如I/O完成或收到信号)。

就绪(ready):进程等待分配处理器。

终止(terminated):进程完成执行。

进程状态图

进程控制块

       每个进程在操作系统内用进程控制块(PCB,process control block)来表示。

概念:

系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。

要点:

系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志

进程与PCB是一一对应的

通常进程队列是进程所对的PCB队列

操作系统通过PCB来感知进程的存在

PCB表

       系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。PCB表的大小决定了系统中最多可同时存在的进程个数,称为系统的并发度

       结构:

       链接结构:同一状态进程的PCB组成一个链表,不同状态的进程对应多个不同的链表。(就绪链表、阻塞链表……)

索引结构:对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。

进程调度

       多道程序设计的目的是无论何时都有进程在运行,从而使CPU利用率达到最大化。

       分时系统的目的是在进程之间快速切换CPU以便用户在程序运行时能与其进行交互。

       为达到此目的,进程调度选择一个可用的进程到CPU上执行。单处理器系统从不会有超过一个进程在运行。如果有多个进程,那么余下的则需要等待CPU空闲并重新调度。

调度程序

长期调度程序(或作业调度程序)

短期调度层序(或CPU调度程序)

这两个调度程序的主要差别是它们执行的频率。

短期调度程序必须频繁为CPU选择新进程。

长期调度程序控制多道程序设计的程度(内存中的进程数量)。

中期调度程序(又名交换)核心思想:将进程从内存(或从CPU竞争)中移出,从而降低多道程序设计的程度。

上下文切换

       将CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态,这一任务称为上下文切换。

进程操作

进程标识符(pid)

通过fork()系统调用,可创建新进程。

新进程通过复制原来的地址空间形成。

子进程返回0,父进程返回大于0,错误返回-1.

Fork()的功能

内核为子进程做一个父进程的上下文的拷贝(复制父进程的PCB作为子进程的PCB),子进程与父进程共享子进程创建之前父进程所有的资源,父进程和子进程在不同的地址空间上运行。

Fork()的几个要点

父子进程具有独立的内存空间。

父子进程资源的共享与分离:父进程中在fork之前创建的变量——先继承,后分离,子进程继承了父进程的私有变量,作为自己的私有变量;Fork之后各自创建的变量——完全分离。

子进程继承了父进程的所有资源,其中包括父进程的这些私有变量,但继承以后互相不能访问。

进程间通信有两种基本模式

共享内存:允许以最快的速度进行方便的通信,在计算机中可以达到内存的速度,等等。

消息传递:对于交换较少数量的数据很有用,因为不需要避免冲突,对于计算机间的通信,消息传递也比共享内存更易于实现,等等。

详细信息看思考题。

 

 

课后作业

1.

短期调度程序(CPU调度程序)从准备执行的进程中选择进程,并为之分配CPU。

中期调度程序在分时系统中,将进程从内存(或从CPU竞争)中移出,之后进程被重新调入内存,并从中断处继续执行。这种方案称为交换。

长期调度程序(作业调度程序)从缓冲池中选择进程,并装入内存准备执行。

这三种作业调度方式的主要区别是它们执行的频率不同。短期调度频繁为CPU选择进程,每次执行之间的时间短,执行程序快。长期调度控制多道程序设计的程度(内存中进程数量),执行并不频繁

 

2.

       进程上下文用进程的PCB表示,它包括CPU寄存器的值、进程状态和内存信息管理等。发生上下文切换时,内核将旧进程的状态保存在其PCB中,然后装入经调度要执行的并已保存的新进程的上下文。

 

4.

       PARENT:value=5因为wait()函数等待的是进程不是数据,进程回到父进程时父进程的value是5。子进程先继承5后更新成20,父子进程分别有自己的私有变量value。

 

 

思考题:

进程的概念:

进程是程序的一次执行;进程是可以和别的计算并发执行的计算;进程可定义为一个数据结构及能在其上进行操作的一个程序;进程是一个程序及其数据在处理机上顺序执行时所发生的活动;进程是程序在一个数据集合上的运行活动,是系统进行资源分配和调度的一个独立单位;进程是可并发执行的程序在一个数据集合上的运行过程;进程是进程实体的运行过程,其中进程实体包括程序段、数据段、PCB、栈、程序计数器、寄存器等。

 

进程的状态、转换及其转换条件(状态转换图):

New(新的)进程正在被创建

Running(运行)指令正在被执行

Waiting(等待)进程等待某个事件的发生(如I/O完成或收到信号)。

Ready(就绪)进程等待分配处理器。

Terminated(终止)进程完成执行。

状态转换图:略

PCB的概念及其作用:

PCB是进程控制块(ProcessControl Block),系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志,进程与PCB是一一对应的。

 

几种进程间的通信方法:

共享内存、消息传递。

 

What are the two models of interprocess communication?What are the strengths and weaknesses of the two approaches?

共享内存、消息传递。

共享内存速度快,一旦建立共享,所有访问都被处理为常规的内存访问,不需要内核介入。消息传递对于交换较少数量的数据很有用,因为不需要避免冲突,对于计算机间的通信,消息传递比内存共享更易于实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值