操作系統-進程管理(習題)
作者:互联网
操作系统-进程管理(习题)
本文将回答一下课后的习题
程序并发执行为什么会失去封闭性和再现性
答:在并行执行程序时,系统资源由多个程序所共享,则这些资源必然由这些程序来改变。程序执行时,必然会受到其他程序的影响。正是因为如此,不能以程序作为作为描述其执行过程的基本单位,催生了后来进程及进程上下文的出现。
什么叫进程的并发性?
答:进程的并发性是指操作系统中可以同时运行多个进程,CPU虽然一次只能执行一个进程,但可以在多个进程之间进行快速的切换,宏观时间上来看就是多个进程在并行执行。
试说明PCB的作用,为什么说PCB是进程存在的唯一标志?
答:进程是由PCB、程序和数据集合构成的,PCB的存在体现了进程的动态性。
进程包含了进程标识符、处理机状态(由处理机的各种寄存器的内容组成)、进程调度信息和进程控制信息。
PCB的存在是进程可以并发执行的关键,进程从被唤醒到被挂起和被切换都需要PCB记录信息。
在进程被创建时,PCB最早被创建,进程被撤销时,PCB最晚被释放。所以可以说PCB是进程存在的标志。
进程的创建包含了哪些过程
(1) 申请空白PCB。为新进程申请一个唯一的进程标识符,在PCB集合中申请一块空白PCB。
(2) 为新进程分配资源。主要是新进程的程序、数据及用户栈所需的内存空间。
(3) 初始化PCB。主要是将各种信息填入PCB中,如:进程标识符、父进程标识符、处理机状态,将程序计数器指向程序的入口地址,栈指针指向栈顶,处理机控制信息,新进程设置为就绪状态,新进程的优先级。
(4) 将新进程的PCB插入就绪队列。
进程的高级通信方式有哪几种?
(1) 共享存储器系统:相互通信的进程共享某些数据结构或存储区,进程之间通过这些空间通信。
(2) 消息传递系统:分为直接通信方式和间接通信方式。直接通信即两个进程之间直接发送message。间接通信即发送进程将message发送到信箱。信箱又分为私有信箱、公有信箱和共享信箱。发送进程发送消息时,先在自己的内存中申请一发送区,将要发送的正文和其他一些信息填入其中。发送原语则负责根据消息长度设置一个缓冲区,即“信箱”。将要发送的信息复制到其中。接收进程再从缓冲区里复制信息。
Linux系统的进程有几种状态?
(1) TASK-RUNNING状态。包含了运行状态和就绪状态,具体是哪一种要靠是否占用了CPU资源来区分。
(2) TASK-INTERRUPTIBLE状态。进程正在等待某些事件。可中断状态的进程可以被信号唤醒进入就绪状态等待被调入。
(3) TASK_UNINTERRUPTIBLE状态。因为某些硬件资源没满足而中断的进程。
(4) TASK_ZOMBIE状态。僵死状态。由于某些原因进程被终止,进程所有的资源都已经被释放,但是PCB信息还被保留。这种状态就称为僵死状态。
(5) TASK_STOPPED状态。暂停状态。一般由运行状态转换而来,等待某种特殊处理。
在读者-写者问题中,修改问题的同步算法,当有写进程到达时,后续读进程必须等待,而不管是否有读进程在读文件。试写出相应的程序段。
semaphore mutex; //mutex是对文件进行读\写操作的信号量。 int readcount = 0, arrive = 0;//arrive是表示写进程是否到达的变量,0表示未到达,1表示到达。 void writer() { arrive = 1; wait(mutex); 写操作... signal(mutex); arrive = 0; } void reader() { if (arrive == 1) return; if (readcount == 0) { wait(mutex); } readcount++; 读操作... readcount--; signal(mutex); }
标签:状态,系統,程序,发送,进程,mutex,習題,PCB,進程 来源: https://www.cnblogs.com/lunar-ubuntu/p/12233522.html