1. 试从动态性、并发性和独立性上比较进程和程序。
a. 动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只是一组有序指令的集合,是静态实体。
b. 并发性是进程的重要特征,同时也是os的重要特征。引入进程的目的正是为了使其程序能和其它建立了进程的程序并发执行,而程序本身是不能并发执行的。
c. 独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。
2. 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。
void philosopher(int i)
while (true) ;
semaphore room=4;
void philosopher(int i)
while(true)
think();
wait(room); 请求进入房间进餐。
wait(chopstick[i]);请求左手边的筷子。
wait(chopstick[(i+1)%5]);请求右手边的筷子。
eat();
signal(chopstick[(i+1)%5]);释放右手边的筷子。
signal(chopstick[i]);释放左手边的筷子。
signal(room); 退出房间释放信号量room
semaphore chopstick[5]=;
void philosopher(int i)
while(true)
think();
swait(chopstick[(i+1)]%5,chopstick[i]);
eat();
ssignal(chopstick[(i+1)]%5,chopstick[i]);
semaphore mutex = 1 ;
semaphore chopstick[5]=;
void philosopher(int i)
while(true)
think();
wait(mutex);
wait(chopstick[(i+1)]%5);
wait(chopstick[i]);
signal(mutex);
eat();
signal(chopstick[(i+1)]%5);
signal(chopstick[i]);
semaphore chopstick[5]=;
void philosopher(int i)
while(true)
think();
if(i%2 ==0) /偶数哲学家,先右后左。
wait (chopstick[ i + 1 ] mod 5) ;
wait (chopstick[ i])
eat();
signal (chopstick[ i + 1 ] mod 5) ;
signal (chopstick[ i])
else //奇数哲学家,先左后右。
wait (chopstick[ i])
wait (chopstick[ i + 1 ] mod 5) ;
eat();
signal (chopstick[ i])
signal (chopstick[ i + 1 ] mod 5) ;
3. 在生产者 - 消费者问题中,如果缺少了 signal(full) 或 signal(empty) ,对执行结果将会有何影响?
如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full 值,即使缓冲池产品已满,但full 值还是0,这样消费者进程执行wait(full)时认为缓冲池是空。
而取不到产品,消费者进程一直处于等待状态。
如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从。
中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想。
再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。
小穆刷粉01162014-12-01
操作系统课后作业
1.os的作用可表现在哪几个方面?2.操作系统内存管理有哪些主要功能?它们的主要任务是什么?3 进程在运行时存在那两种制约关系?并举例说明之。4 在创建一个进程时所要完成的主要工作是什么?5 什么是进程?什么是线程?比较进程和线程的异同。6.算下列a b c d四个进程在fcfs和sjf调度方式下的...
操作系统课后作业
fifo和lru a 某系统采用段页式存储管理,有关数据结构如下图所示,求出虚拟地址139366的物理地址 用十进制表示 b 某虚拟存储器的用户空间共有32个页面,每页1kb,主存16kb。假定某时刻系统为用户的第 页分别分配的物理块号为 试将虚拟地址0a5c和093c转换为物理地址。c 设一逻辑地...
操作系统课后作业答案
1.1解 step1 取指step2 从执行设备5到ac 主存 cpu寄存器 i o主存 cpu寄存器 i o 300pc5300pc 5 301ac6301ac6 302ir302ir step3 取指step4 ac add940 ac 主存 cpu寄存器 i o主存 cpu寄存器 i o 30...