操作系统 进程与线程

  1. 进程的运行状态
A. 就绪态到执行态
B. 执行态到就绪态
C. 执行态到阻塞态
D. 阻塞态到就绪态  


  1. 创建进程步骤:
    1,申请空白PCB(进程控制块);
    2,为新进程分派资源;
    3,初始化PCB;
    4,将新进程插入就绪队列;


  1. 进程的状态
进程运行时具有三个状态:运行态,就绪态,等待态(阻塞态)
A:一次I/O操作结束,等待态->就绪态
B:运行进程需要I/O操作,运行态->等待态
C:运行进程结束,直接转入释放
D:出现了比现运行进程优先级更高的进程,运行态->就绪态

引起进程阻塞和唤醒的事件:
1、向系统请求共享资源失败。进程转变为阻塞状态。
2、等待某种操作完成。比如进程启动了I/O设备,必须等I/O操作完成后,进程才能继续。
3、 新数据尚未到达。对于合作的进程,如果一个进程A需要先获得另一进程B提供的数据后,才能对该数据进程处理,只要数据尚未到达,进程A只能阻塞。当进程B提供数据后,便可以去唤醒进程A。
4、等待新任务到达,用于特定的系统进程。它们每当完成任务后,就把自己阻塞起来,等待新任务。


  1. 就绪和阻塞


静止就绪:这个也叫做挂起就绪,是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起就绪态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。
活动就绪:进程在主存并且可被调度的状态。
静止睡眠(阻塞):是指进程对换到辅存时的阻塞状态,一旦等待的事件产生便进入静止就绪状态。
活动睡眠(阻塞):是指进程已在主存,一旦等待的事件产生便进入活跃就绪状态。

正在执行的进程由于其时间片用完被暂停执行,此时进程应从执行状态变为活动就绪状态;
处于静止睡眠状态的进程,在进程等待的事件出现后,应变为静止就绪状态;
若进程正处于执行状态时,因终端的请求而暂停下来以便研究其运行情况,这时进程应转变为静止就绪状态;若进程已处于睡眠状态,则此时应转变为静止睡眠状态。


  1. 进程线程
如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程; 用户态 :线程
如果系统中有内核态线程,则操作系统可以按线程进行调度; 内核态:进程

用户级线程,切换时不需要内核的支持
线程是资源调度和分配的单位,进程是资源拥有的单位
引入线程后,线程才是资源分配和调度分派的基本单位
不管系统中是否有线程,进程都是拥有资源的独立单位
同一进程内的线程切换不会引起进程的切换,不同进程内线程的切换是会引起进程的切换的。

  1. 临界资源和临界区
临界资源跟临界区的区别:
临界资源:只允许一个进程进行访问的资源,比如打印机;
临界区:使用临界资源的代码区;

  1. 互斥信号
互斥信号量不采用自旋锁的方式实现,mutex初始值为1,当一个准备进入临界区时,mutex - 1 = 0,该进程进入临界区;
另一个进程准备进入临界区时,mutex - 1 = -1,mutex < 0时将该进程挂起到mutex的列表中,等待被唤醒。
因此一个进程已经进入临界区,另一个进程在等待。
信号量为-m,就是有m个进程在等待,一共m+1个进程,还有一个已经进入临界区。


  1. 记录和整信号
对于记录型信号量,当 s<0 的时候,请求进程会阻塞
对于整型信号量,当s<=0的时候,请求进程不会阻塞,而是进入盲等状态



并发程序,若是单核,并发只能互斥运行,若是多核,可以采用同步的方式运行。


  1. 进程调度原则
<1>进程的调度方式包括非剥夺方式和剥夺方式。 
非剥夺方式: 分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。 
剥夺方式: 当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。 


  1. 三种调度模式
 三种调度模式:
         高级调度 (作业调度或长程调度JCB ):后备队列
         中级调度 (中程调度 pcb):就绪队列,阻塞队列,
         低级调度 (进程调度或短程调度  pcb):挂起队列 or 就绪队列 or 阻塞队列
高级调度和低级调度的主要任务是什么?为什么引入中级调度?

参考答案

(1)高级调度又称为作业调度。它是批处理系统中使用的一种调度。其主要任务是按照某种算法从外存的后备队列上选择一个或多个作业调入内存,并为其创建进程、分配必要的资源,然后再将所创建的进程控制块插入就绪队列中。(2)低级调度又称进程调度。它是距离硬件最近的一级调度。其主要任务是按照某种算法从就绪队列上选择一个(或多个)进程,使其获得CPU。(3)引入中级调度的目的是为了提高内存利用率和系统吞吐量。其功能是,让那些暂时不能运行的进程不再占用宝贵的内存资源,而是调其到外存上等候。此时的进程状态为挂起状态。当这些进程重新具备运行条件且内存空闲时,由中级调度选择一部分挂起状态的进程调入内存并将其状态变为就绪状态。


  1. 进程上下文:


  1. 作业调度仅仅是创建进程将其调入内存,进程调度才是获取cpu 的
  2. 计算进程会占用大量的CPU时间,IO进程会占用较少的CPU时间,所以IO的优先权要高。
  3. ( 周转时间)是指从作业提交系统到作业完成的时间间隔。
  4. 进程运行结束、进入阻塞状态、时间片用完、有更高优先级的进程进入就绪队列等原因均可引起进程调度
  5. Windows这样的多任务系统和Unix这样的多进程系统在调度上有何不同?

参考答案

从调度上讲,在Windows这样的多任务系统中,当前执行哪个任务是由用户决定的,是用户可控制的;而在Unix这样的多进程系统中,当前运行哪个进程是由内部的调度算法决定,是对用户透明的,用户是不可直接控制的。

  1. 进程和线程的主要区别是什么?

参考答案

在有进程和线程的系统中,进程是系统资源分配的独立单位,而线程是可调度运行的独立单位。
  1. 程序的并发执行为什么会有间断性?

参考答案

并发执行是指系统内有多道程序在宏观上"同时"执行,但系统内往往只有一台处理机(CPU),因此只能分时地为多个程序服务。就一道程序而言,往往不是一次能够运行完成,而是以"走走停停"的方式完成其运行,这就是并发系统内程序执行的间断性。
  1. 进程不能唤醒或撤销自己,只能由别的进程来执行
  2. 在什么情况下,可以一次唤醒一个进程和一次唤醒多个进程?

参考答案

在I/O中断处理程序中,当唤醒进程时,只唤醒等待该I/O结束的那一个进程;当一个进程释放一个系统资源(如I/O缓存)时,将要唤醒所有因等待使用该资源而进入阻塞状态的进程。
  1. 什么是线程?进程和线程的关系是什么?

参考答案

线程可定义为进程内的一个执行单位,或者定义为进程内的一个可调度实体。 在具有多线程机制的操作系统中,处理机调度的基本单位不是进程而是线程。一个进程可以有多个线程,而且至少有一个可执行线程。进程和线程的关系是:(1)线程是进程的一个组成部分。(2)进程的多个线程都在进程的地址空间活动。(3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。(4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。(5)线程在执行过程中,需要同步。
  1. 简述进程为什么不能从就绪状态直接变成阻塞(睡眠)状态?

参考答案

一个进程要进入阻塞(睡眠)状态,必须通过执行相应的程序才能实现,如Sleep()或Block()。就绪进程当前不在CPU上运行,不能执行任何程序,当然不能使自己直接进入阻塞状态。
  1. 在剥夺调度中,有哪些剥夺原则?

参考答案

(1)时间片原则。在轮转算法中,CPU轮流为诸多进程服务,每个进程运行完自己的时间片后,系统就将CPU剥夺过来,交给下一个进程使用。(2)优先级原则。为紧迫的作业赋予较高的优先级,这种作业到达系统或由阻塞状态被唤醒后,若其优先级高于当前运行的进程的优先级,可以剥夺当前运行进程的CPU。(3)短作业(进程)优先原则。若一个作业(进程)到达系统,其运行长度比当前运行的进程长度明显的短,则剥夺当前运行的进程CPU。
  1. 试比较说明进程和程序的区别有哪些?

参考答案

进程和程序是紧密相关而又完全不同的两个概念:1、每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。2、进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。3、多个进程实体可同时存放在内存中并发地执行,其实着正是引入进程的目的。而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。4、进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。5、进程与程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值