程序
- 程序的顺序执行具有:顺序性、封闭性、可再现性。
- 程序并发执行会失去封闭性和可再现性的原因:因为程序并发执行时,多个程序共享系统中的各种资源,资源状态需要多个程序来改变,即存在资源共享性使程序失去封闭性;而失去了封闭性导致程序失去可再现性。
- 操作系统的四大特征是基于程序形成的。×
进程
-
???
-
创建一个进程的主要任务是建立该进程的PCB。√
-
操作系统可以创建所有进程。×?
-
进程同步的任务是使程序并发执行。×
主要任务是:对多个相关进程在执行次序上进行协调;; 使并发执行的诸进程能按照一定的规则(或时序)共享系统资源; 使并发执行的诸进程能很好的相互合作;;使程序的执行具有可再现性; -
在任何时刻,一个进程的状态变化,可能引起另一个进程的状态变化。√
-
进程的PCB是记录型的数据结构。√
-
进程控制是通过OS原语来实现的。
-
在单处理机中的某一时刻,只有一个进程在执行。√
-
一个进程状态变化总会引起其他一些进程的状态变化。×
-
操作系统的四大特征是基于进程而形成的。√ 注意不是程序
-
在多处理机中,每一个时刻都有多个进程并发执行。×
-
进程是系统进行资源分配和调度的一个基本单位。√
-
在单CPU的多道处理器系统中,某一时刻同时存在有N个进程,则它们的运行态、等待态、就绪态允许的最大值和最小值分别是什么?
进程和管程
管程每次只允许一个程序进入。
管程具有的特性是:模块性、抽象性、信息隐藏性
线程
- 内核线程中,依赖OS核心;一个线程的阻塞不会影响其它线程
- 用户线程中,不依赖OS核心;
- 引入线程的主要目的是并发执行。
- -
- !!!重要
- !!!
信号量
- 同步信号量的初值可以是N或0。对
- 互斥信号量的P、V操作必须放在一个进程中完成。对
-Wait,signal操作可以实现进程的同步和共享资源互斥使用,但不能排除死锁。对
互斥信号量与同步信号量的区别
互斥信号量与同步信号量的区别
1、初值
同步信号量的初值一般设为0;
互斥信号量的初值一般设为1;
其中,互斥:p、v在同一进程中;同步:p、v在不同进程中。
2、用途
(1)同步信号量的用途:防止被抢占 初始为空
低优先级的任务持有信号量,高优先级的任务需要这个信号量,只有当低优先级的任务give(释放)信号量,高优先级的任务才能take(获取)信号量。通过这种机制低优先级的任务就可以防止被高优先级的任务抢占。give和take是分别在两个任务里做的。
(2)互斥信号量的用途:对临界区上锁 初始为满
当一个任务想对临界区访问时,为了防止别的任务也对该临界区操作,它需要对该临界区上锁,即take(获取)一个互斥的信号量,以保证独享。当该任务take(获取)一个互斥的信号量以后,它仍然能被高优先级的任务抢占,但高优先级的用户仍然无法访问它已经上锁的临界区。而解锁也是由上锁的任务来做的。take和give是在一个任务里完成的。
3、值的含义
(1)同步信号量,值为资源可以使用的个数,信号量小于0,则线程进行等待,信号量大于0,表示可用资源个数。初始值0.
(2)互斥信号量只有两个值0或1,0表示资源正在被占用,线程等待。1表示,资源没有被使用,线程可以进入。初始值为1
4.优先级
如果两个p操作放在一起,p操作的顺序至关重要。即同步信号量与互斥信号量在同一个进程中时,同步信号量在互斥信号量之前,而两个v操作无关紧要。
进程通信
低级通信对用户不透明;高级通信对用户透明
同步和互斥属于低级通信。
微内核是基于消息传递通信。
类型
-
共享存储器系统:分类上,基于共享存储器的通信方式,基于共享存储区的通信方式;数据处理上,只能进行少量的数据交换;是低级通信方式;
-
管道通信:以字符流传递;双方进程要求上,互斥、同步、去确定对方存在;适合大量信息传递
-
消息传递系统:通信链路方法有,单项链路和双向链路
-
客户机-服务器系统:
消息传递通信的实现方法 -
直接通信方式:发送进程利用OS提供的发送命令原语,直接把消息传递给目标进程;原语有Send,Receive;
例题:直接通信可以实现实时通信 -
间接通信方式:中间实体是信箱;
(1)信箱通信原语
信箱的创建和撤销
消息的发送和接收
Send(mailbox, message); //将一个消息发送到指定信箱;
Receive(mailbox, message); //从指定信箱中接收一个消息;
(2)信箱类型
私用信箱 (由用户进程创建的,私有的)
公用信箱 (由操作系统创建的,共享的)
共享信箱 (由某个进程创建的,共享的)
(3)发送进程和接收进程间的关系
一对一关系
多对一关系:提供服务进程和多个用户通信(客户/服务器)
一对多关系: 一个发送进程与多个接收进程交互(广播方式)
多对多关系
并发
- 如果两个程序之间有前驱关系,则无法并发执行。例子:有面粉才有拉面。
微内核
- 在微内核OS中,由于客户和服务器、服务器和服务器之间的通信都需通过微内核,致使同样的服务请求至少需要进行四次上下文切换。第一次是发生在客户发送请求消息给 内核,以请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时;第三次是当服务器完成客户请求后,把响应消息发送到内核时;第四次是在内核将响应消息发送给客户时。
- 微内核是基于消息传递通信。