分类:
2009-06-29 18:08:17
第三次课:
传统程序不能满足需要,问题解决:进程Process
单处理机系统(硬件发展):多核处理器
A,B,C窗口 2:00,南京(C/Server)
20-1,20-1,20-1张
五个哲学家,围坐在一张桌子边,放着一盘面条,左、右手各有一根筷子。Thinking,eat.
每个哲学家占有了一根筷子,再去申请另外一根。
进程有不同的优先级,当有一个优先级更高的进程进入就绪队列,而调度算法采用的是剥夺式(抢占式)调度策略时,当前进程会进入就绪状态让出CPU给优先权更高的进程使用。
就绪状态:当一个进程获得了除CPU(处理机)之外的所有其他需要的资源时。
卡耐基—梅隆大学
通信的命令:
第四周:进程同步
必须对并发的进程进行控制:异步/不可再现性
吃香蕉:
进程的推进是“走走停停”,不可预知的顺序
逻辑错误
软件测试:软件测试只能证明程序有错,不能证明程序无错。
数学证明:程序设计方法学(霍尔,何积丰)
可信计算
进程的运行状态:目标态/管态 用户态/核心态
User Mode/Kernel Mode
忙等待(busy-waiting)
Peterson方法(忙等待)
优先级反转问题
Minix Linux
荷兰,数据结构(信号量,int类型的变量) P/V
Wait/signal
Down/up
信号量的物理含义:表示当前可用的资源数目,如果该值为0,表示可用的资源正好分配完毕,如果该值为负数,则表示有若干进程因为申请该资源没有得到满足而被阻塞,被阻塞的进程数目等于该值的绝对值。
生产者-消费者:BUFFER-SIZE:10
Semaphore size =10;
Wait(size)
Mutex:一般作为一个互斥信号量的名字出现;互斥信号量一般初值为1
Semaphore s1,s2,s3=0,0,0;
运动员1:听枪响;
跑
V(S1);
运动员2:P(S1);
跑
V(S2);
运动员3:P(S2)
跑
V(S3)
运动员4:P(S3)
跑
C/S能不能用在单机环境中?能
客户机/服务器:不是一个硬件
读者—写者问题:
多个读者可以同时读,写者不能同时写,读和写不同时进行
1) 读者优先:当有一个读者在读时,其他读者可以直接进入临界区进行读操作。写者进程必须等待到没有读者读时才能进入。
需要什么信号量?
需要一个互斥信号量来控制写者进程。write
需要一个互斥信号量控制对读者数目的统计count++/--变量?mutex
2) 写者优先:当有写者要写入数据时,当前正在读的进程可以读完,但其他想要读的进程需要等待写者完成写操作之后再读。
生产者/消费者:同步(控制进程推进的顺序)
哲学家就餐问题:并发的问题(预防/避免死锁)
竞争筷子引起的
三种方法:1、最多只能有4个人参与竞争
2、规定奇数号先拿左边,偶数号的先拿右边
3、仅当两根筷子都能用时才能拿。(信号量集的机制)
死锁的引发根本原因是?资源不足
PASCAL语言
Semaphore plate =1,bana=0,oran=0;
Parbegin
Process father
Begin
Repeat
剥桔子
Wait(plate)
放到盘子中
Signal(oran)
Until false
End
Process mother
Begin
Repeat
剥香蕉
Wait(plate)
放到盘子中
Signal(bana)
Until false
End
Process son
Repeat
Wait(oran)
拿桔子
Singal(plate)
吃
End
Process daughter
Repeat
Wait(bana)
拿香蕉
Singal(plate)
吃
End
Parend
系统调用是操作系统提供的供程序员编程使用的接口。程序员可以使用这些函数实现对计算机软硬件资源的控制。
MFC API函数 圆形的窗口
Fork()
Kill()
时间片轮转:保存现场信息(上下文切换)
分时系统来说,时间片越小越好