在引入线程之前,进程是资源分配的基本单位也是cpu调度的基本单位。但是在引入线程之后,cpu调度的基本单位变成了线程。之所以引入线程是为了提高系统的并发性,减少进程并发带来的时空开销。他们的所占用的内存空间不同,通信方式不同。
管道: 速度慢, 容量有限, 只有 父子之间的进程能通信.
消息队列: 容量受到系统限制.
共享内存: 速度快, 但要保持同步
各进程互相等待对方手里的资源,导致进程都阻塞,无法向前推进
预防死锁
避免死锁:银行家算法
死锁检测:死锁定理,资源分配图的简化
死锁解除:撤销,回退
用户级线程
内核级线程
多线程模型
先来先服务
最短寻道时间优先
SCAN
C-SCAN
LOOK
C-LOOK
进程管理
进程管理主要是要实现进程线程之间调度,处理进程之间的同步和互斥问题,以及可能产生的死锁等问题。
内存管理
内存空间的分配和回收(非连续分配中有基本分页和基本分段),虚拟存储技术(请求分页,请求分段,缺页中断),内存空间扩充(覆盖交换),地址转换,存储保护等。
文件管理
对文件目录的管理(FCB indoe),如何实现文件共享(硬链接软链接),文件保护(口令加密访问控制),对非空闲磁盘块的管理(连接分配,索引分配),以及对空闲磁盘块的管理(位示图法,空闲链表法,成组链法),磁盘调度,磁盘管理(低级格式化,磁盘分区,逻辑格式化)。
设备管理
这一块主要的知识就是中断处理(程序直接控制,中断驱动方式,DMA方式,通道控制)