操作系统进程管理部分相关概念知识点

1、进程管理属于处理器(CPU)管理的内容。那么为何要引入进程,为什么不能以程序为单位进行程序运行的管理?
因为程序的运行是走走停停的,为有效描述程序在内存中的运行状态(例如当前是否处于运行状态还是就绪状态、阻塞状态,占用了哪些系统资源等)。
简单说就是便于管理。当然也是为了方便分批系统资源。
进程是程序的一次执行,是动态的,而程序是静态的;进程是程序运行时资源分配的独立单位;进程相对程序多了一个PCB(进程控制块)。

2.什么是调度,什么是队列?
调度就是安排的意思,进程管理中的调度指的是处理机调度:就是从就绪队列中,按照一定的算法(有哪些算法,以后的课程讲述)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。
队列就是排队的队伍,内存中有多道程序运行,他们相互争夺处理机这一重要的资源,因此进程需要排队等待使用这一资源。
就绪队列就是就绪的队伍即是等待运行的队伍,阻塞队列就是阻塞的队伍即是等待I/O的队伍。
没有运行的队列,因为任何时刻都只有一个进程处于运行态,但就绪态和阻塞态的进程可能不止一个,因此有相关队列。
3、在进程状态转换图中,如何理解运行状态转换到就绪状态的“超时”这个条件?
超时其实是基于公平原则而设置的,例如,如果有一个进程运行时间很长且执行过程中并未发生I/O事件(即没有发生阻塞),那么它将长时间占用CPU,而其它进程就得不到cpu的执行,因此要像分时系统那样给每个进程设置相等的时间片,超时后该进程要结束运行,重新排队。

4.如何理解挂起和激活?
挂起和激活的区别很简单,就是进程激活那么进程处于内存中,如果挂起则处于外存中,进程由激活变成挂起,则表示其由内存调出到外存中(调出到外存的对换区中,内存管理的章节中会讲到,包括为什么要由内存转入外存,也在后续课程中讲述);进程由挂起变成激活,则表示其由外存重新调入内存。挂起就绪表示在外存排队等待执行,挂起阻塞表示在外存中排队等待I/O。
进程只有回到内存后才能得到cpu的执行,即挂起状态的进程不能立即执行。
转回激活的就绪状态才能得到cpu的执行。

5、理解就绪,阻塞/唤醒,挂起/激活,就绪挂起,阻塞挂起,就绪队列,阻塞队列,就绪挂起队列,阻塞挂起队列 。
就绪:进程处于万事俱备只欠东风(就差CPU的执行)的状态。已经为进程创建好了PCB,并放大就绪队列中排队,就等CPU的执行了。
PCB:进程控制块
阻塞:进程因为需要某个条件(如I/O)而暂时停止CPU的执行,唤醒:把进程由阻塞变为就绪(之前的条件已经得到满足)
挂起:因内存空间不足而暂时把内存中的某个或某些进程调回外存(放到外存的对换区),激活:把暂时调出内存的处于挂起状态的进程重新调入内存(内存空间能够满足要求)
就绪挂起:在外存就绪,经激活后到就绪队列等待CPU的执行
阻塞挂起:在外存等待条件(或事件的发生),经激活后到阻塞队列等待事件发生
队列:处于相同状态的进程按某种算法进行排队的队伍

6.PCB是一个数据结构,对应C语言中的一个struct,通过查看定义在struct中的成员,可否总结一下PCB的主要功能?引申问题,所有PCB的大小(当前内存空间)一样吗?
1)作为独立运行基本单位的标志,PCB中定义了一个进程标识符(进程唯一的身份证号码)
2)能实现间断性运行方式,PCB中定义了描述处理机状态(处理机状态信息)的成员,以便在该进程中断完成后重新执行时,能从断点继续执行。
3)提供进程管理所需要的信息
4)提供进程调度所需要的信息
5)实现与其他进程的同步与通信
引申问题:同一个系统中PCB的大小是一样的。
同一个系统中PCB占用的内存空间是一样的,用同一个struct定义。

7.如何理解原语?为什么创建/终止,阻塞/唤醒,挂起/激活要用到原语?
原语是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性:即原语的执行必须是连续的,在执行过程中不允许被中断。
显然进程在创建/终止,阻塞/唤醒,挂起/激活的过程中,一旦开始就必须做完,不能半途而废,否则会造成系统问题。
创建进程不能创建到一半不做了,如果创建不成功那么之前所做的事情要全部撤销。

8.请举例有哪些临界资源?现实世界中还有哪些相同的事例?
表格中的某个单元格,CPU,打印机,键盘,程序中的共享变量这些是。
一次仅允许一个进程使用的共享资源称为临界资源。
现实世界的事例:买火车票时同一趟火车的剩余票数,同一个候选人的得票数…
为了保证各个进程对临界资源的互斥访问,则要加入同步机制(下一节的内容)
9.处理机管理有哪些主要功能?它们的主要任务是什么?

答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;
进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。
进程同步:为多个进程(含线程)的运行顺序进行协调。
进程通信:用来实现在相互合作的进程之间的信息交换。
处理机调度:
(1)作业调度。从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配内存)。
(2)进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。

10、文件管理有哪些主要功能?其主要任务是什么?
答:文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。文件管理的主要任务:管理用户文件和系统文件,方便用户使用,保证文件安全性。

11、是什么原因使操作系统具有异步性特征?
答:操作系统的异步性体现在三个方面:一是进程的异步性,进程以人们不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。
12、试从动态性,并发性和独立性上比较进程和程序?
(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源
而暂停执行,由撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静
态实体。
(2)并发性是进程的重要特征,同时也是OS 的重要特征。引入进程的目的正是为了使
其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独
立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。
13、试说明PCB 的作用,为什么说PCB 是进程存在的惟一标志?

PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使一个在
多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程
并发执行的进程。OS是根据PCB对并发执行的进程进行控制和管理的。

14、试说明进程在三个基本状态之间转换的典型原因。
(1)就绪状态→执行状态:进程分配到CPU资源
(2)执行状态→就绪状态:时间片用完
(3)执行状态→阻塞状态:I/O请求
(4)阻塞状态→就绪状态:I/O完成
15、在进行进程切换时,所要保存的处理机状态信息有哪些?

正确答案:
进行进程切换时,所要保存的处理机状态信息有:
(1)进程当前暂存信息;
(2)下一指令地址信息;
(3)进程状态信息;
(4)过程和系统调用参数及调用地址信息。
16、试说明引起进程被撤销的主要事件。

正确答案:
引起进程被撤销的主要事件有:正常结束、异常结束(越界错误、保护错、非法指令、
特权指令错、运行超时、等待超时、算术运算错、I/O 故障)、外界干预(操作员或操作系
统干预、父进程请求、父进程终止)。

17、在创建一个进程时所要完成的主要工作是什么?

正确答案:
(1)OS 发现请求创建新进程事件后,调用进程创建原语Creat();
(2)申请空白PCB;
(3)为新进程分配资源;
(4)初始化进程控制块;
(5)将新进程插入就绪队列。
18、试说明引起进程阻塞或被唤醒的主要事件是什么?

正确答案:
(1)请求系统服务;
(2)启动某种操作;
(3)新数据尚未到达;
(4)无新工作可做。
19、进程在运行时存在哪两种形式的制约?并举例说明之。

正确答案:
(1)间接相互制约关系。
举例:有两进程A 和B,如果A 提出打印请求,系统已把唯一的一台打印机分配给了进程B,则进程A只能阻塞;一旦B释放打印机,A才由阻塞改为就
绪。
(2)直接相互制约关系。
举例:有输入进程A通过单缓冲向进程B提供数据。当缓冲空时,计算进程因不能获得所需数据而阻塞,当进程A 把数据输入缓冲区后,便唤醒进程B;反之,当缓冲区已满时,进程A因没有缓冲区放数据而阻塞,进程B将缓冲区数据取走后便唤醒A。
20、为什么进程在进入临界区之前应先执行“进入区”代码(进入临界区之前的代码)?而在退出后又要执行“退出区”代码?(退出临界区后的代码)

正确答案:
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为"进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。
21、进程互斥机制应遵循哪些基本准则?为什么?

正确答案:
进程互斥机制应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待
原因:为实现进程互斥进入自己的临界区。

22、整型信号量机制是否完全遵循了同步机构的四条准则?

正确答案:
整型信号量机制不完全遵循同步机制的四条准则,它不满足“让权等待”准则。
23、如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。

正确答案:
为使多个进程互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其初值为1,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作之间即可。这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex 执行wait 操作,若该资源此刻未被访问,本次wait 操作必然成功,进程便可进入自己的临界区,这时若再有其他进程也欲进入自己的临界区,此时由于对mutex 执行wait操作定会失败,
因而该进程阻塞,从而保证了该临界资源能被互斥访问。当访问临界资源的进程退出临界区后,应对mutex执行signal 操作,释放该临界资源。利用信号量实现进程互斥的进程描述
如下:

var mutex: semaphore:=1begin
   parbegin
      process 1: begin
         repeat
            wait(mutex);
            critical section;//进入临界区
            signal(mutex);
            remainder section
         until falseend
      process 2: begin
         repeat
            wait(mutex);
            critical section;//进入临界区
            signal(mutex);
            remainder section
         until falseend
   parend
end

24、设有5台打印机为3个进程(p1,p2,p3)共享使用,试分别写出相应的程序来描述这个同步问题。
正确答案:

Var n : semaphore:=5;
begin
    parbegin
        p1;
        p2;
        p3;
    parend
end
p1:
begin
    repeat
        wait(n);
        print; //使用打印机
        signal(n);
    until false
end
p2和p3的代码与p1相同。

25、在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果有何影响?
正确答案:
如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full 值,即使缓冲池产品已满,但full 值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状态。
如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。
26、在生产消费者问题中,如果将两个wait 操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果如何?

正确答案:
将wait(full)和wait(mutex)互换位置后,可能引起死锁。考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。
27、我们在为某一临界资源设置一把锁W,当W=0(若为负数,则其绝对值为阻塞队列的长度)时表示加锁状态,当W=1时表示开锁状态。试写出利用整型信号量和记录型信号量实现加锁和开锁的原语,并写出程序利用这些原语实现多个进程对该临界资源的互斥访问。

正确答案:

1)整型信号量加锁和开锁原语:
lock(W): //加锁原语
   while (W<=0) do no-op
   W:=W-1;
unlock(W): //开锁原语
   W:=W+1;
2)记录型信号量加锁和开锁原语:
lock(W): //加锁原语
   W:=W-1;
   if(W<0) then block(W, L)
unlock(W): //开锁原语
   W:=W+1;
   if(W<=0) then wakeup(W, L)

多个进程对该临界资源的互斥访问的程序:
Var W : semaphore:=1//初始为开锁状态
begin
   repeat
      lock(W);
      critical section
      unlock(W);
      remainder section
   until false;
end

28、试修改下面生产者-消费者问题解法中的错误(重新写出完整的代码):

Var mutex,full,empty : semaphore:=1,0,n;//n是缓冲区单元格总数
producer:
begin
    repeat
        …
        producer an item in nextp;
        wait(mutex);
        wait(full);
        buffer(in):=nextp;
        signal(mutex);
    until false;
end

consumer:
begin
    repeat
        wait(mutex);
        wait(empty);
        nextc:=buffer(out);
        out:=out+1;
        signal(mutex);
        consumer item in nextc;
    until false;
end

正确答案:

Var mutex,full,empty : semaphore:=1,0,n;//n是缓冲区单元格总数
producer:
begin
    repeat
        …
        producer an item in nextp;
        wait(mutex);
        wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */
        buffer(in):=nextp;
        /* 缓冲池数组游标应后移,这里加上这一行: in:=(in+1) mod n; */
        signal(mutex);
        /* 加上这一行: signal(full); */
    until false;
end

consumer:
begin
    repeat
        wait(mutex);
        wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */
        nextc:=buffer(out);
        out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */
        signal(mutex);
        /* 这里加上这一行: signal(empty); */
        consumer item in nextc;
    until false;
end

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSPS初赛知识点整理主要涵盖数学、计算机科学和信息技术等多个领域。其中,数学是CSPS竞赛的重要组成部分,涉及的知识点包括数论、代数、几何、概率与统计等。在数论方面,需要掌握素数、质因数分解、欧几里得算法、同余和模运算等相关概念和定理。在代数方面,需要了解多项式运算、方程与不等式、函数与图像等内容。在几何方面,需要熟悉平面几何的基本理论、线性代数的知识以及空间几何的相关概念。在概率与统计方面,需要了解随机事件、概率计算、统计推断、数据分析等内容。 此外,CSPS初赛还需要掌握计算机科学和信息技术方面的知识。在计算机科学方面,需要了解算法与数据结构、计算机组成原理、操作系统、编程思想等内容。在算法与数据结构方面,需要熟悉常见的数据结构如数组、链表、栈、队列、树、图等,并能应用各种算法进行问题的解决。在计算机组成原理方面,需要了解计算机的基本组成部分,包括CPU、存储器、输入输出设备等,并能了解各个组件的工作原理。在操作系统方面,需要了解操作系统的基本概念和功能,如进程管理、内存管理、文件系统等。在编程思想方面,需要掌握面向对象编程、函数式编程、并发编程等基本思想。 在信息技术方面,需要了解网络与通信、数据库管理系统等相关知识。在网络与通信方面,需要了解互联网的基本组成和架构、网络协议、网络安全等内容。在数据库管理系统方面,需要了解数据库基本概念、关系模型、SQL语言和常见的数据库管理系统等知识。 综上所述,CSPS初赛知识点整理包括数学、计算机科学和信息技术等多个领域的知识。掌握这些知识点将有助于参赛者在竞赛中取得优异的成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值