0%

OS课件内容

问题

系统调用和普通函数的区别?

PV 操作解决哲学家就餐问题?

司机和售票员?

生产者和消费者?

三 操作系统用户界面

系统调用:
操作系统内核为应用程序提供的 函数/服务

四 进程管理

进程状态:
运行
就绪
阻塞

Linux 进程状态:
可运行态
阻塞
僵死
挂起

进程控制块:描述进程状态、资源和与相关进程关系的数据结构。

进程操作:
创建进程
撤销进程
阻塞进程
唤醒进程

创建进程的过程: 5
创建一个空白PCB
获得并赋予进程标识符ID
为进程分配空间
初始化PCB
插入相应的进程队列

进程控制原语

子进程 fork pid = 0
父进程 pid > 0

临界资源:一次只允许一个进程访问的资源。CR

临界区:进程中访问临界资源的程序段。CS

设计临界区访问的四个原则:
忙则等待
空闲让进
有限等待
让权等待

锁 S 1可用 0不可用 不满足让权等待

同步:
协调合作进程的运行步伐。

互斥:
协调各个进程对资源的存取顺序。(特殊的同步关系)

P操作的原理(P(S,q) ,简记P(S))

  1. S值减1;
  2. 若差大于或等于零,该进程继续;
  3. 若差小于零,则该进程阻塞并加入到队列q中,并转调度函数。

V操作的原理(V(S,q) ,简记V(S))

  1. S值加1;
  2. 若和大于零,该进程继续;
  3. 若和小于或等于零(表明有其它正在阻塞的进程),该进程继续同时从q中唤醒一个进程。

Snipaste_2020-05-15_17-36-37

五 死锁

死锁:两个或多个进程无限期地等待永远不会发生地条件的一种系统状态。

关于死锁的一些结论

  1. 参与死锁的进程至少是2个
    1. 两个以上进程才会出现死锁
  2. 参与死锁的进程至少有2个已经占有资源
  3. 参与死锁的所有进程都在等待资源
  4. 参与死锁的进程是当前系统中所有进程的子集
  5. 死锁会浪费大量系统资源,甚至导致系统崩溃

必要条件:
互斥条件
不剥夺条件
部分分配条件
环路等待条件

进程调度:
衡量条件:周转时间/平均周转时间
带权周转时间/平均带权周转时间 周转时间/运行时间

调度算法:
先来先服务
短作业优先调度
响应比高者优先调度
优先数调度
循环轮转调度

九 文件系统

文件物理结构

连续文件
索引文件
串联文件 FAT File Allocation Table

文件存储和目录

记录磁盘空闲块的方法:
空闲文件目录
空闲块链
位示图