3.3 进程管理
信号量的使用:
• • • 必须置一次且只能置一次初值 初值不能为负数 只能执行Down、Up操作
用Down、Up操作解决进程间互斥问题
进程 P1 进程 P2 进程 P3 Down(S) Down(S) Down(S) Up(S) Up(S) Up(S)
互斥区
用信号量实现互斥
S的初始值为1 进程 P Down(s) {对共享内存操作} up(s) 进程 Q Down(s) {对共享内存操作} up(s)
3.3 进程管理 3.3.6 进程的同步与互斥
进程的同步就是指相互协作的进程不断调整它们之间的相 对速度,以实现共同有序地推进。 换句话说,在操作系统中,允许多个进程并发运行。然而, 有些进程之间本身存在某种联系,它们在系统中需要一种协作, 以保证进程能正确有序地执行并维护数据的一致性。
例:A、B两进程同步工作如下图(A进程负责从键盘读数据到缓冲区,B进程从缓冲 区取数据并计算。 A进程
• Linux内核源代码情景分析
– 毛德操,胡希明 浙大出版社
• 莱昂斯unix源代码
3.1 操作系统概念及构成 3.1.1 操作系统的概念
操作系统:是管理计算机软硬件资源的程序,同 时它又是用户与计算机硬件的接口。
没有操作系 统,应用软 件如同空中 楼阁,无法 运行。
用户 系统程序和应用程序 操 作 系 统 硬 件 层
用信号量实现互斥解决竞争问题
x, y初始值为10
进程 P: x=x+1 P0. DOWN( S )
S的初始值为1
进程 Q: y=y-1 Q0. DOWN( S )
P1. MOV R0, X
P2. INC R0 P3. MOV X, R0 P4. UP( S ) 此时x=11, y=9