1.总结windows的进程/线程模型。
2.总结solaris的进程/线程状态及状态转换。
solaris的进程创建。
fork系统调用创建一个新的子进程,并把父进程的很多对象复制到子进程中,例如地址空间、线程、文件描述符等
fork有不同的形式,包括fork1、forkall和vfork
主要区别1:地址空间的复制与共享。
fork1和forkall会为子进程创建自己的地址空间,并把父进程的地址空间复制到子进程
vfork在创建子进程后,让子进程共享父进程的地址空间,子进程没有自己独立的地址空间
主要区别2:多线程的复制。
fork1和vfork只把调用它的线程复制到子进程中
forkall把父进程中所有的线程都复制到子进程中。
solaris进程线程模型。
solaris的多线程模型中包括四种实体:进程,内核线程,用户线程和轻量级进程(lwp)
solaris内核是多线程的。
进程是资源分配和管理的单元。
内核级线程是内核的调度单元。
用户级线程是程序执行在用户态的抽象。
lwp把用户线程和内核线程绑定到一起。
solaris进程模型。
进程。对用户程序执行上下文环境的抽象。
包括虚拟内存地址空间, 程序资源, 和至少一个执行线程。
硬件上下文。
进程执行过程中的处理机信息, 它与cpu结构相关。
总体来说,就是硬件寄存器的状态 (普通寄存器, 特权寄存器)
保存在lwp中。
软件上下文。
地址空间, 证书,打开文件, 资源限制等等。
——同一进程中可被其他线程共享的资源。
3.对某系统进行监测后表明平均每个进程在i/o阻塞之前的运行时间为t。一次进程切换需要的时间为s,这里s实际上就是开销。对于采用时间片长度为q的时间片轮转法,请给出以下各种情况的cpu利用率的计算公式。
1)q=∞;
2)q > t;
3)s < q < t;
4)q = s;
5)q趋近于0。
4.有5个待运行的进程,它们的估计运行时间分别是和x。采用哪种次序运行各进程将得到最短的平均响应时间(答案依赖于x)?
5.总结windows操作系统的线程调度算法的要点。
windows 线程调度。
调度单位是线程而不是进程,采用严格的抢占式动态优先级调度,依据优先级和分配时间配额来调度。
每个优先级的就绪线程排成一个先进先出队列。
当一个线程状态变成就绪时,它可能立即运行或排到相应优先级队列的尾部。
系统总是运行优先级最高的就绪线程。
在同一优先级的各线程按时间片轮转算法进行调度。
在多处理机系统中多个线程并行运行。
windows 在内核中实现它的线程调度**,线程调度的触发事件有以下四种:
一个线程进入就绪状态,如一个刚创建的新线程或一个刚刚结束等待状态的线程。
一个线程由于时间配额用完而从运行状态转入结束状态或等待状态。
一个线程由于调用系统服务而改变优先级或被windows 系统本身改变其优先级。
一个正在运行的线程改变了它的亲合处理机集合。
1.推广的消息缓冲问题。
消息缓冲区为k个,有m个发送进程,n个接收进程,每个接收进程对发送来的消息都必须取一次。试用pv操作解决发送进程和接受进程之间的正确通信问题。
2.试用信号量及pv操作解决第二类读者写者问题(写者优先)。
要求:(1)多个读者可以同时进行读;
(2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行);
(3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者)。
3.有一个系统,定义p、v操作如下:
p(s):s:=s-1;
if s<0 then
将本进程插入相应队列末尾等待;
v(s):s:=s+1;
if s<=0 then
从相应等待队列队尾唤醒一个进程,将其插入就绪队列;
回答问题:1)这样定义p、v操作是否有问题?
2)用这样的p、v操作实现n个进程竞争使用某一共享变量的互斥机制。
3)对于(2)的解法,有无效率更高的方法。如有,试问降低了多少复杂性?
4.睡眠理发师问题。
理发店里有一位理发师,一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,则理发师便在理发椅上睡觉。当一个顾客到来时,他必须先唤醒理发师;如果顾客到来时理发师正在理发,则如果有空椅子,可坐下来等;否则离开。
5.假定一个阅览室最多可容纳100人,读者进入和离开阅览室时都必须在阅览室门口的一个登记表上进行登记(进入时登记,离开时去掉登记项),而且每次只允许一人登记或去掉登记。试用pv操作完成进程的同步关系。
6.巴拿马运河建在太平洋和大西洋之间。由于太平洋和大西洋水面高度不同,有巨大落差,所以运河中修建有t(t>=2)级船闸,并且只能允许单向通行。
船闸依次编号为、…t。由大西洋来的船需经由船闸t、t通过运河到太平洋;由太平洋来的船需经由船闸、…t-1,t通过运河到大西洋。
试用p、v操作正确解决大西洋和太平洋的船只通航问题。
操作系统 软件 操作系统作业
1 信号量的物理含义是什么?2 处于执行状态的进程若同时发生了下列两种情况 1 对某信号量执行p操作后,信号量的值变为负数。2 该进程的时间片到时产生中断。试问,该进程将由执行状态变迁为就绪态,还是阻塞态?简述理由。3 设有n个进程共享一临界区,对于下述情况,说明信号量的初值 含义,并用pv操作写出...
操作系统作业
4.程序并发执行时为什么会失去封闭性和可再现性?因为程序并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态是由多个程序来改变,致使程序的运行失去了封闭性。而程序一旦失去了封闭性也会导致其再失去可再现性。6.试从动态性,并发性和独立性上比较进程和程序?a.动态性是进程最基本的特性,可表现为...
操作系统作业
一 选择题。1 在进程的组成部分之中,进程在运行中不可修改的部分是 a 私用程序段b 共享程序段。c 数据段d 进程控制块。2 响应比高者优先作业调度算法是以计算时间和 来考虑的。a 输入时间 b 完成时间 c 周转时间 d 等待时间。3 在消息缓冲通信中,消息队列属于 资源。a 临界 b 共享 c...