1最长的平均等待时间(一起来,又最长的作业先运行)
TL=[(n-1)tn+(n-2)tn-1+(n-3)tn-2+2T3+T2]/n
[3T4+2T3+T2]/4
2最短的平均等待时间TS=0
(大家按顺序来,而且时间恰到好处,没有等待)
3实际平均运行时间
TR=[T1+T2..Tn]/n
4最长的平均周转时间TL+TR
5最短的平均周转时间TS+TR
资源问题.
3页面调度问题p73
#主要是FIFO和LRU算法及计算。
注意页架数,涉及页面顺序/中断/淘汰等。
例子1)给出页面顺序,计算中断次数,淘汰顺序/页面等
2)页面调度中的异常问题
给出页面顺序:
231253412341323页架数3
如果页架数=给出页面中页数的最大值
1)没有淘汰2)缺页中断次数=最大值
FIFO
231253412341323
中断********8
222233115443
33311554222
1155442331
231545
4磁盘有关问题
#基本磁盘参数:
磁头H/磁道C/扇区S。
磁盘容量=H*C*S*扇区大小
磁盘最大传输率=H*单个磁道容量*转速/秒
#例子1)磁盘大小的计算。
2)最大理论传输速率的计算
磁盘容量计算:
h=16c=1024s=65536Sl=0.5k=512byte
16*1024*65536*0.5k=2^(4+10+16-1+10)=2^39=512GByte
h=256c=1024s=64(8+10+6=24)
256*1024*64*0.5k=2^(8+10+6-1+10)=2^33=8GByte
扇区大小:
受磁盘物理参数的限制.误码的影响.CRC16
扇区数量:
受磁盘物理参数的限制.记录密度
密度=512Byte/CM扇区需要的最小长度=1cm
磁道长=10CM
扇区最大数=磁道长/扇区需要的最小长度
=10cm/1cm=10
#磁盘调度p101
移臂调度:
FIFS/SSTF最短寻道时间优先/扫描/循环扫描
旋转调度:
读一扇区的时间T=寻道时间+寻扇区时间+读扇区时间+数据处理传输时间
#例子1)给出磁道序列,按不同算法计算需要移动磁道数。
2)给出文件大小,按顺序和间隔存放,计算各自的读取时间。
移臂调度:
给出磁道顺序数,计算磁头移动的距离.
100,20,98,15,50,100,98,30,76,50磁头参数:
磁道数=50/方向N>0
最小磁道=0;最大磁道=150
FIFS10080788335502684626=568
SSTF1520305050769898100100
155102002622020=100
循环扫描最小磁道0
50>050503020150769898100100
0020105157622020=150
最大磁道200
50>1005050769898100100150302015
00262202050120105=235
扫描
50>05050302015769898100100
0020105156122020=135
50>1005050769898100100302015
00262202070105=135
旋转调度:
1磁盘转速To
2读写一个扇区需要的时间Trw
3两个寻找时间:
寻道Tc(不会算,一般由厂家给出)/寻扇区Ts
(可以算,最小=0,最大=一圈时间To,平均Tsv=To/2)
4处理传输时间(一般也不能计算)Tp
To最大=2*Tsv>Trw>Tp
读写一个扇区时间=Tc+Ts+Trw+Tp
例如:
某文件大小10KB磁盘扇区大小=1KB一磁道上有10个扇区,
如果用顺序存放方式,问读出这个文件所需要的时间是多少?
0123456789十个扇区编号
0123456789文件块编号
设定:
To是磁盘旋转一圈的时间,Trw=To/10
T=T0+T1+..T9
T0=Tc0+Ts0+Trw+Tp=Tc0+Ts0+Trw+Tp
T1=Tc1+Ts1+Trw+Tp=0+(To-Tp)+Trw+Tp
T2=Tc2+Ts2+Trw+Tp=0+(To-Tp)+Trw+Tp
…
T9=Tc9+Ts+Trw+Tp=0+(To-Tp)+Trw+Tp
T=Tc0+Ts0+9To-9Tp+10Trw+10Tp
=Tc0+Ts0+9To+10Trw+Tp
=Tc0+Ts0+10To+Tp
0123456789十个扇区编号
0*1*2*3*4*
*5*6*7*8*9
0516273849文件块编号单间隔存放
T0=Tc0+Ts0+Trw+Tp=Tc0+Ts0+Trw+Tp
T1=Tc1+Ts1+Trw+Tp=0+(Trw-Tp)+Trw+Tp
T2=Tc2+Ts2+Trw+Tp=0+(Trw-Tp)+Trw+Tp
…
T5=Tc5+Ts5+Trw+Tp=0+(Trw-Tp)+Trw+Tp+Trw
T9=Tc9+Ts+Trw+Tp=0+(Trw-Tp)+Trw+Tp
T=Tc0+Ts0+9Trw-9Tp+10Trw+10Tp+Trw
=Tc0+Ts0+20Trw+Tp
=Tc0+Ts0+2To+Tp
#磁盘管理p102理论:
位示图法/索引表法
实际:
DOS/WIN?
?
用的FAT表及计算
UNIX用的索引表及计算。
特点:
把多级索引和为一表
#例子1)FAT12/24/32的计算
2)UNIX索引表管理文件大小的计算
FAT表的计算(理论)
FATn的大小=FAT表的宽度(=n)*FAT表的表项数(=2^n)bit
FAT12大小=12*2^12bit=3*2^2*2^12/2^3Byte=3*2^(2+12-3)=3*2^11
=6*2^10=6KB
FAT24大小=24*2^24bit=3*2^3*2^24/2^3Byte=3*2^(3+24-3)Byte
=3*2^24=3*16*2^20=48MB
FAT32大小=32*2^32/8=16GByte
FATn可以管理块的计算=FAT表的表项数
FATn可以管理磁盘大小的计算=FAT表的表项数*块的大小
TAF12=2^12*0.5K=2^(12-1+10)=2^21=2*2^20=2MB
TAF24=2^24*0.5K=2^(24-1+10)=2^33=8*2^30=8GB
FAT32=2^32*0.5K=2^(32-1+10)=2^41=2Tbyte
实际做法:
WIN?
?
倒算磁盘块数。
1FATn是多大,实际用FAT32
2块的大小。
4KB/8KB/16KB/32KB/64KB
找出某个WIN?
?
的块大小。
1用dir命令查看磁盘的剩余空间X精确到Byte
2用一个编辑器(不要用word)写一个字节到磁盘文件F.
3再次用dir命令检查F大小和磁盘剩余空间Y
4此系统块的大小=X-Y
1.44M/0.5K≈1.5M/0.5K=3K字符
比如磁盘40GB分为X块。
32*X/8<30MB(预计可以使用的空间)
X4=40GB/4KB=40*2^30/4*2^10=10*2^20
32*10*2^20/8=5*2^(3+20)=5*2^3MB=40MB
比如磁盘256GB,仍然用4KB一块
32*(256GB/4KB)/8=256M
实际程序大小10MB,用的块数=10MB/4KB=2.5K
OS使用块数=256GB/4KB=64M
2.5K/64KK=2.5/64K
数据结构是分别计算各个索引表。
一张索引表中有四种索引。
1直接,指向文件块,2一级索引,指向指向文件块的索引块,
3二级索引,4三级索引。
最大缺点是:
在多级索引时,为了读写文件块需要多次访问磁盘。
文件块=1KB目录项大小=32Byte磁盘块数<2^32指针长度=32bit=4Byte
一块中可以放的目录数=块大小/目录项大小=1024/32=32个
一块中可以放的指针数=块大小/指针大小=1024/4=256个
索引表的第一块一定是目录,有32个指针
16个直接指针<16KB的文件可以直接找到F1=16KB
8个一级索引8*256个指针8*256*1KB+F1≈2Mbyte=F2
6个二级索引6*256*256个指针6*256*256*1KB+F2≈3*2^7MB=384MB=F3
2个三级索引2*256*256*256个指针2*256*256*256*1KB+F3≈32GB
5基本速度计算CPU速度与用户数的基本关系/CPU、主存、辅助存储器的速度问题
#例子1)给出CPU主频、用户需要的计算速度,计算用户数。
=CPU主频/用户需求
2)K/M/G/T问题
10^N36912
2^M10203040
369123)实际主存与辅存速度。
如缺页与不缺页的时间差距。
ns与ms的关系
mμnp秒nsms
Hzf=1/T1GHz主频=>1/1Ghz=1ns
磁盘5400转/分5400转/60秒=90转/秒T=1/90秒=1000/90ms
10800转/分10800转/60秒=180转/秒T=1/180秒=1000/180ms
X[100][100]数据存放与OS的存储器管理有关。
For(I=0;I<100;I++)
For(j=0;j<100;j++)
X[I][j]=0;X[j][I]=0;
五、程序题目(10~20)
#不考具体的程序,只要写出流程,用中文写也可以。
#程序的死锁分析。
给出题目,找出是否有死锁,若有是怎样的情况
死锁的原因:
进程并行/资源有限
#共用数据用锁的实现互斥的程序。
上锁和解锁程序流程
#同步与互斥模型的使用
#用信号完成生产者与消费者的程序
#用信号完成输入/处理/输出三个进程的的程序
同步模型信号=0;B在P(s)点等待A先过V(s)点.
A…V(s)…..
B….P(s)…..
互斥模型信号=1;
PiP(s)..临界区(程序/资源)..V(s)…
有两个进程Pa生产者,Pb消费者.两者通过缓冲区B来交换信息.
B的大小=N(N>0);
/*1设置信号*/
信号m;/*Pa与Pb间的互斥信号*/
信号s;/*B缓冲区大小的信号*/
信号d/*产品数量*/
/*2信号初始化*/
m=1;/**互斥模型要求m=1*/
s=N;/**缓冲区开时最大*/
d=0;/**产品开始时没有*/
/*3写出Pa与Pb*/
PaPb
LB:
LB:
生产一个产品;P(d);/*看是否有产品*/
P(s);/*检查是否有空间*/P(m);/*与他人互斥*/
P(m);/*与他人互斥*/取出一个产品;
放入一个产品;V(m);/*释放与他人的互斥*/
V(m)/*释放与他人的互斥*/V(s);/*通知Pa多一个空间*/
V(d);/*通知Pb已有产品*/消费
GotoLB;GotoLB;
1检查PV操作是否合理.PV成对。
总与个别
2检查是否有死锁
PaPb
LB:
LB:
生产一个产品;P(d);/*看是否有产品*/
P(m);/*与他人互斥*/P(m);/*与他人互斥*/
P(s);/*检查是否有空间*/取出一个产品;
放入一个产品;V(m);/*释放与他人的互斥*/
V(m)/*释放与他人的互斥*/V(s);/*通知Pa多一个空间*/
V(d);/*通知Pb已有产品*/消费
GotoLB;GotoLB;
PaM=1&s=0PaSleepPa等s占据m
PbM=0&d=NPbSleepPb等m占据d
用信号完成输入I/处理P/输出O三个进程的的程序
I与P用Bip交换信息,P与O用Bpo交换信息,
Bip=nip,Bpo=npo;
/*1设置信号*/
信号mi;/*I与P间的互斥信号*/
信号mo;/*P与O间的互斥信号*/
信号si;/*Bip缓冲区大小的信号*/
信号so;/*Bpo缓冲区大小的信号*/
信号di/*I的产品数量*/
信号do/*P的产品数量*/
/*2信号初始化*/
mi=1;mo=1;/**互斥模型要求m=1*/
si=nip;so=npo/**缓冲区开时最大*/
di=0;do=0;/**产品开始时没有*/
/*3写出I,P,O*/
IPO
LB:
LB:
LB:
输入一数据;P(di);/*看是否有数据*/P(do);/*看是否有数据*/
P(si);/*检查Bip*/P(mi);/*与I互斥*/P(mo);/*与P互斥*/
P(mi);/*与P互斥*/取出一数据;取出一数据;
放入一数据;V(mi);/*释放与I互斥*/V(mo);/*释放与P互斥*/
V(mi)/*释放与P互斥*/V(si);/*通知I多一空间*/V(so);/*通知P多一空间*/
V(di);/*通知P有数据*/处理数据输出数据
GotoLB;P(so);/*检查Bpo*/gotoLB;
P(mo);/*与O互斥*/
放入一数据;
V(mo)/*释放与O互斥*/
V(do);/*通知O有数据*/
GotoLB;
GetInData();
PutOneData();
OutputOneData();
六、UNIX题目(10~20)
#UNIX的基本描述:
多用户/多进程/分时操作系统
1核心/用户2范围:
家,最大的家root3权限:
rwx三种4进程家族树及其控制方式
5所有资源都作为文件来管理6运行级别及前台与后台运行
#UNIX的文件目录结构:
/根目录下的主要文件
/usror/home家的目录
/usr/spool/mail邮箱地址
/tmp/usr/tmp两个共用区
/usr/include开发用头文件
/bin二进制文件可执行文件
/lib库文件
/dev设备文件
/usr/home用户的家所在地
/tmp临时文件存放地
/etc杂项大部分都是root用的
/etc/passwd帐户文件accountfile
/etc/shadow影子文件
#与基本概念密切相关的命令
1家及用户set/w/whoamIlogin/logoutexitctrl+d
2进程及控制ps/kill
3权限及管理chown/chmod字母法/数字法/chgrp
4文件及目录cd/more/cat/mv/mkdir
#进程间通讯方式:
管道/锁/信号/消息队列/共享内存
set查看环境
ps可以查看到的信息(进程的基本状态:
就绪/运行/等待)
Name内部ID/外部NameUIDUnamePIDPPIDPname
Nice运行级别C
时间STIME开始运行时间TIME实际运行时间
位置信息TTY/dev/tty01/dev/tty1a/dev/ttyp1
Kill[?
]PID?
=-1~-9
-rwxr-----A$chmod764A7=111rwx6=110rw-4=100r—
$chmod[User][OP][Right]
User:
u主人g小组o其他a全部
OP:
+增加权利-减少权利=等于权利
Right:
rwx
$chmoda+rA
$chmod