操作系统红颜色部分
生产者消费者问题
1.爸爸妈妈放苹果桔子例子(盘子可以放2个水果),爸专向盘子中放苹果,妈妈专向盘子
中放橘子,儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果。
semaphore plate=2, apple=0, orange=0,mutex1=1,mutex2=1(互斥信号量);
父亲进程
while (1) {
取苹果;
P(plate) ; //互斥向盘中取、放水果
P(mutex1);
向盘中放苹果;
V(mutex1);
V(apple); //允许取苹果
}
母亲进程
while(1) {
取桔子;
P(plate); //互斥向盘中取、放水果
P(mutex1);
向盘中放橘子;
V(mutex1);
V(orange); //允许取橘子
}
儿子进程
while(1){
P(orange) ; //互斥向盘中取橘子
P(mutex2);
从盘子中拿桔子;
V(mutex2);
V(plate); //允许向盘中取、放水果
吃桔子;
}
女儿进程
while(1) {
P(apple); // 互斥向盘中取苹果
P(mutex2);
从盘子中拿苹果;
V(mutex2);
V(plate); //运行向盘中取、放水果
吃苹果;
}
2.图
馆看书登记的例子
图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。
要几个程序,有多少个进程,(答:一个程序;为每个读者设一个进程)
(1) 当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞)
(2) 当图书馆中没有座位时,后到的读者不等待,立即回家。
解(1 )
设信号量:S=100; MUTEX=1 P(S)
P(MUTEX)
登记
V(MUTEX)
阅读
P(MUTEX)
注销
V(MUTEX)
V(S)
解(2)
设整型变量 COUNT=100; 信号量:MUTEX=1;
P(MUTEX);
IF (COUNT==0)
{ V(MUTEX);
RETURN;
}
COUNT=COUNT-1; 登记
V(MUTEX);
阅读
P(MUTEX);
COUNT=COUNT+1; V(MUTEX);
RETURN;
1. 在页式管理中,页长为2K,某一作业的4个页面0,1,2,3分别被分配到内存的2,4,6,9块中,试回答
(1)画出作业A的页表;
(2)在1200单元有一条指令mov r1, [7500]执行时,如何进行正确的地址变换,使7500单元处的
1234装入r1中,请写出计算过程。
(1)
页号 块号
0 2
1 4
2 6
3 9
(2)
因为每页大小为2KB=2048字节,而7500=3*2048+1356,可知逻辑地址7500对应的页号为3,页内地址为1356.根据页号检索页表可知对应的物理块号为9,所以物理地址为:9*2048+1356=19788.
在一个请求分页系统中,假设系统分配给某进程的物理块数为3/4,开始时内存为空,执行如下访问页号序列:, 用FIFO先进先出淘汰算法/OPT理想型淘汰算法/LRU,写出页面淘汰过程,并计算缺页率。
2. 操作系统为某进程在内存中分配有三个页面,该进程访问内存的顺序(访问串)为4,3,2,1,4,3,5,4,3,2,1,5,试用先进先出淘汰算法和理想型淘汰算法运行该进程,写出页面淘汰过程,并计算缺页率(假设初始时内存中没有该进程的页面)。
OPT算法:
4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 4 4 2 1
3 3 3 3 3 3
2 1 5 5 5
缺页率=7/12*100%=58%
FIFO算法淘汰最先进入内存页面,即选择在内存中驻存时间最长的页面予以淘汰: 4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 1 1 1 5 5 5
3 3 3 4 4 4 2 2
2 2 2 3 3 3 1
缺页率=9/12*100%=75%
LRU算法淘汰最近最久未使用的页面:
4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 1 1 1 5 2 2 2
3 3 3 4 4 4 4 1 1
2 2 2 3 3 3 3 5
缺页率=10/12*100%=83%
某分页系统中主存容量为XXKB,页面大小为2KB,作业A的4个页面0,1,2,3分别被分配到主存的XXXX块中,试回答(1)画出作业A的页表(2)如何将逻辑地址2800(十进制)转换为物理地址,(超出页表长度产生地址越界中断)
3. 某虚拟存储器的用户空间共有32个页面,每页2KB,主存32KB。
(1)逻辑地址的有效位是多少, 32*2KB=2^16B 16位
(2)物理地址的有效位为多少, 主存32KB=2^15B 15位
(3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7。将虚地址092BH变换为物理地址。(如果给出的地址分离的页号不在页表中,并且小于页长,则产生缺页中断,否则才是地址越界中断。)
页号 块号
0 5
1 10
2 4
3 7
092BH= 0 1001 0010 1011 “0001”为页号
页号1对应块号10 对应的二进制为“1010”拼接页内地址001 0010 1011得到物理地址 101 0001 0010 1011=512BH
4. 某文件占8 个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析,假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间(T)为60us,将缓冲区的数据传送到用户区的时间(M)是30us,CPU对一块数据进行分析的时间(C)为30us。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是多少,
单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读取时间)*8+CPU处理最后一块数据的时间
双缓冲区的总时间=(磁盘写入缓冲区时间)*8+读取最后一块数据时间+CPU分析最后一块数据的时间
单缓冲区总时间=(T+M)*8+C =(60+30)*8+30=750us 双缓冲区总时间=T*8+M+C=60*8+30+30=540us
5.磁盘或内存采用位示图分配。 (1)块号B对应位示图的字号和位号各是多少? (2)位示图字号W,位号M对应块号是多少? 类似P277 T15
(1) 字号i=(B-1)DIV n+1 位号j=(B-1)MOD n+1 (DIV求商,MOD求余) (2) B=n*(W-1)+M ( b=n*(i-1)+j )
6. 假定当前磁头位于A号磁道,进程对磁道的请求序列依次为。当采用最短寻道时间优先和SCAN/CSCAN算法时,总的移动的磁道数分别是多少, P218
假定当前磁头位于100号磁道,进程对磁道的请求序列依次为55,58,39,18,90,160,150,38,180。当采用先来先服务和最短寻道时间优先算法时,总的移动的磁道数分别是多少,(请给出寻道次序和每步移动磁道数)(8分)
FCFS:
服务序列依次为: 55,58,39,18,90,160,150,38,180 移动的磁道数分别是: 45, 3, 19, 21, 72, 70, 10, 112,142 总的移动的磁道数是:494
SSTF:
服务序列依次为: 90,58,55,39,38,18,150,160,180 移动的磁道数分别是: 10, 32, 3, 16, 1, 20, 132, 10, 20 总的移动的磁道数是:244
SCAN:150,160,180,90,58,55,39,18
CSCAN:150,160,90,18,39,55,58,90
7. 假设一个UNIX系统中,每个i结点中有10个直接地址和一、二、三重间接地址各一个,如果每个盘块长2KB,每个盘块地址占用16 bit,则一个1MB的文件分别占用多少数据盘块和间接盘块,
1MB的文件
1) 占用数据盘块数:1MB/2KB = 512 个
2) 每个盘块占用16bit,即用2个字节存放盘块地址
一次间接盘块可存放 2KB/2B = 1K=1024个数据盘块索引>502个
所以:1MB的文件占用1个间接盘块,该间接盘块有502个数据盘块地址。
10MB的文件
1) 占用数据盘块数:10MB/2KB = 5120 个
2) 每个盘块占用16bit,即用2个字节存放盘块地址
一次间接盘块可存放 2KB/2B = 1K=1024个数据盘块索引
一次间接不够,需要二次间接,
5120-1024-10=4086个
占用二次间接盘块4086/1024=[3.99]=4(取上整),加上主索引1块,一共5块。
所以:10MB的文件占用5块二次间接,1块一次间接,一共6个间接盘块。
简答题
死锁、虚拟存储、文件删除、位示图 磁盘、同步 互斥、spool、虚拟设备、文件
进程状态:三个基本状态及转换(原因)
两种形式的制约关系:同步和互斥
临界资源、临界区、互斥、同步的定义及举例 共享缓冲区的合作、进程同步
进程状态:三个基本状态及转换(原因) 死锁的定义及例子,解决死锁的办法
虚拟存储管理作用,概念,实现方式有,
磁盘进行移臂调度的目的() ,算法,特点 SPOOLing系统是如何实现虚拟设备的 ? 虚拟设备,SPOOLing技术如何实现虚拟打印机,
位示图作用,计算,分配回收
UNIX索引结点,计算数据盘块和间接盘块数
文件误删除如何恢复,原理,