第三章 进程线程模型

本文深入探讨了程序的顺序执行与多道程序设计,阐述了并发执行的概念,强调了进程和线程的特性、状态转换以及它们之间的区别。详细介绍了进程控制块(PCB)、进程调度、线程模型和调度算法,同时讨论了不同类型的调度系统及目标。此外,还涵盖了实时系统和不同调度策略在批处理、交互式和实时系统中的应用。
摘要由CSDN通过智能技术生成

1、程序的顺序执行:具有独立功能的程序独占CPU直到得到最终结果的过程。具有如下特点:
(1)顺序性——程序所规定的动作在机器上严格地按顺序执行;
(2)封闭性——程序运行后,其计算结果只取决于自身,程序执行得到的结果由给定的初始条件决定,不受外界因素的影响。
(3)程序执行结果的确定性——程序执行的结果与执行速度无关(程序执行结果与时间无关)
(4)程序执行结果的可再现性——在不同时间执行,只要输入初始条件相同,可得到相同的结果。
注:程序的顺序性和封闭性是一切顺序程序所具有的特性。
2、多道程序设计模型:允许多个程序同时进入内存并运行。它是操作系统中最基本、最重要的技术。
(1)根本目的是提高整个系统的效率;
(2)衡量系统效率的指标——吞吐量(单位时间内系统所处理作业的道数)。
3、多道程序设计环境的特点
(1)独立性——每到程序都是逻辑上独立的,且执行速度与其他程序无关,执行的起止时间也是独立的;
(2)随机性——程序和数据的输入与执行开始时间都是随机的;
(3)资源共享性——执行程序的道数总是多于计算机系统中CPU的个数。
4、程序的并发执行:两个或两个以上程序在计算机系统中同处于已开始执行且尚未结束执行的状态。具有如下特点:
(1)在执行期间具有相互制约关系——伴随资源的竞争,使程序具有“执行-暂停-执行”的规律;
(2)程序与计算不在一一对应——允许多个用户作业调用一个共享程序段,从而形成多个“计算”;
(3)执行结果不在可现——执行结果与其执行程序的相对速度有关,是不确定的。
5、进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。
(1)引入目的:为了使多个程序并发执行,以改善资源利用率及提高系统效率。
(2)两个基本属性:一个拥有资源的独立单位;一个可以独立调度和分派的基本单位。
6、进程与程序的联系与区别
(1)联系
程序是构成进程的组成部分之一。进程由程序、数据、进程控制块(PCB)三部分组成;
(2)区别
程序是静态的,而进程是动态的
注:一个进程可以执行一个或几个程序,一个程序也可构成多个进程。
7、进程的特性
(1)并发性——可以同其他进程一道向前推进,一个进程的动作可以在另一个进程的最后一个动作结束之前开始;
(2)动态性——进程动态产生、动态消亡,在进程生命周期内,状态动态改变;
(3)独立性——一个进程是一个相对完整的资源分配单位;
(4)交往性——一个进程在运行过程中会与其他进程发生之间或间接的相互作用;
(5)异步性——每个进程按照各自独立,不可预知的速度向前推进。
8、进程的三状态模型:运行、就绪、等待(阻塞或封锁),三种状态可以相互转化,转化由操作系统完成,对用户透明。
9、运行态转到就绪态的事件:(1)时间片用完(2)进程创建完成(3)被调度程序抢占处理机。
10、进程的五状态模型
(1)运行状态
(2)就绪状态
(3)阻塞状态
(4)创建状态——进行的工作包括:分配和建立进程控制表项、建立资源表格并分配资源、加载程序并建立地址空间表。
(5)结束状态——回收进程控制块之外的其他资源。
11、进程的七状态模型
(1)就绪状态
(2)阻塞状态
(3)阻塞挂起状态
(4)就绪挂起状态
(5)创建状态
(6)结束状态
(7)运行状态
注:进程被挂起后,它的状态为阻塞挂起状态或就绪挂起状态。
12、挂起:把一个进程从内存转到外存。激活:把一个进程从外存转到内存。
13、进程控制块(PCB):进程存在的唯一标志,当系统创建一个进程时,为进程设置一个PCB,再利用PCB对进程进行控制和管理。
内容:分为调度信息和现场信息。
(1)调度信息(供进程调度时使用,描述进程当前所处的状态):进程名、进程号、存储信息、优先级、当前状态、资源清单、消息队列指针、进程队列指针、当前打开文件。
(2)现场信息(刻画进程的运行情况):程序状态字、时钟、界地址寄存器。
14、进程控制块的组织方式:(1)线性方式(2)索引方式(3)链接方式。
15、进程的队列:(1)就绪队列(2)等待队列(3)运行队列
16、原语:由若干条指令组成,用来实现某个特定的操作;通过一段不可分割的或不可中段的程序实现其功能。原语的执行必须是连续的,一旦开始执行就不能间断,直到执行结束。
17、进程控制原语
(1)创建原语——创建一个新进程,前者称为父进程,后者称为子进程。
具体操作过程:申请一空闲PCB区域-将有关信息填入PCB,置该进程为就绪状态-插入就绪队列。
(2)撤销原语——释放所占有的资源。
(3)阻塞原语——把进程状态从运行状态修改为阻塞状态。
具体过程:中断CPU执行,保存CPU状态信息-进程的当前状态置为等状态-插入等待队列中。
(4)唤醒原语——将等待状态进程转换为就绪状态
18、UNIX类操作系统的进程控制操作:
(1)为子进程分配一个空闲的proc结构(进程描述符);
(2)赋予子进程唯一标识pid;
(3)以一次一页的方式复制父进程用户的地址空间;
(4)获得子进程继承的共享资源的指针;
(5)子进程就绪,加入调度队列;
(6)对子进程返回标识符0,父进程返回子进程的pid。
注:fork()函数创建子进程,只被调用调用一次,却返回两次。在父进程中返回子进程的pid;在子进程中返回0。通过区分返回值就可以确定程序是在父进程还时子进程中执行。
19、线程模型:比进程更小的能独立运行的基本单位。是进程中的一个实体,是CPU调度和分派的基本单位
(1)引入目的:减少程序并发执行时的时间空间开销,使操作系统有更好的并发性。
(2)基本属性:每个线程有一个唯一标识符和一张线性描述表(记录执行的寄存器和栈状态等);不同线程可以执行相同的程序;同一个进程的各个线程共享进程的内存空间;是处理器独立调度单位,多个线程可并发执行。
20、引入线程的好处:(1)创建一个线程花费事件少(2)两个线程的切换时间少(每个线程拥有独立的栈)(3)线程能独立执行,能充分利用和发挥处理器与外围设备并行工作的能力
21、线程描述表记录的内容:(1)线程ID(2)指令地址寄存器、处理器寄存器、硬间设备寄存器、(3)栈的少量信息。
22、线程与进程的比较:
(1)引入线程的操作系统中,线程作为调度和分派的基本单位,进程作为资源拥有的单位;传统操作系统中,进程是拥有资源的基本单位和独立调度和分派的基本单位。
(2)线程不拥有系统资源(有一点必不可少的资源),进程拥有系统资源。
23、线程实现机制:
(1)用户级线程——不依赖于内核,需要系统调用访问内核程序。典型操作系统是Linux;
(2)内核级线程——依赖于内核,不需要任何新的、非阻塞的系统调用。典型操作系统是Windows。
(3)混合实现方式——同时实现用户级线程和内核级线程。典型操作系统是Solaris。
24、调度主要分为三类:
(1)高级调度(作业调度)——按一定原则,对磁盘中处于后备状态的作业进行选择并创建为进程;
(2)中级调度——按照给定策略和原则,将处于磁盘对换区中具备运行条件的进程调入内存,或将就绪或阻塞状态的进程交换到对换区;
(3)低级调度(进程调度)——决定就绪队列中的进程获得处理机,并实际将进程分配给处理机。
注:计算机中使用最频繁、算法最复杂的是进程调度;所有进程必须经过进程调度才能在处理机上运行。
25、进程调度的时机:
(1)正在执行的进程执行完毕;
(2)正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态;
(3)正在执行的进程调用阻塞原语操作,并且因为资源不足而被阻塞,或调用唤醒原语操作激活了等待资源的进程;
(4)时间片用完;
(5)就绪队列中某个进程的优先级高于当前运行进程的优先级时,引发进程调度。
26、系统分类:
(1)批处理系统——在商业领域仍有广泛运用;
(2)交互式系统;
(3)实时系统。
27、调度算法设计的目标——取决于环境,但在所有的情形中,公平是最重要的。相似的进程应该得到相似的服务。
28、运行批处理系统通常检查三个指标:(1)吞吐量(2)周转时间(3)CPU利用率(用于批处理系统的度量)。
29、对于交互式系统,主要关注指标:(1)最小响应时间(2)均衡性。
30、实时系统的特点:(1)必须满足截止时间;(2)系统具有高可靠性。
31、进程调度算法解决以何种次序对各就绪进程进行处理机分配以及按何种时间比例让进程占用处理机。
32、批处理系统的调度算法:
(1)先来先服务(FCFS);
(2)最短作业优先(可能导致“饥饿”);
(3)最短剩余时间优先(可能导致“饥饿”);
(4)最高响应比优先。
33、交互式操作系统的调度算法:
(1)多级反馈队列算法(可能导致“饥饿”);
(2)时间片轮转法(公平算法);
(3)最高优先级算法(可能导致“饥饿”);
(4)先来先服务(公平算法)。
34、实时系统中的调度算法:
(1)速率单调调度算法;
(2)最早最终时优先调度。
注:实时系统的调度算法可以是静态的(在系统开始运行前做出调度决策),也可以是动态的(在运行过程中进行调度决策)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值