1.进程和线程
一个进程可以拥有多个线程
2.进程调度算法: 可以参考博客https://blog.csdn.net/xieminyao123/article/details/79116985
(1).先来先服务(FCFS)
每次从就绪队列中选择最先进入该队列的进程,将处理机分配给它,直到完成或者因为某些原因而阻塞时才释放处理机。
算法简单,效率低,对长作业有利。(带权周转时间=周转时间/服务时间 =周转时间/运行时间)
(2)短作业优先(SJF)
从后被队列中选择一个或者若干个估计运行时间最短的作业。该算法对长作业不利,同时未考虑作业的紧迫程度。
(3)高响应比优先调度算法
高响应比优先调度算法综合考虑进程等待时间和执行时间。
(4)时间片轮转调度算法
分时系统 ,进程按着到达的先后顺序拍成一个队列,选择第一个程序执行,但仅运行一个时间片,使用完一个时间片后将处理机给下一个就绪程序,该程序进入队列尾部。
3.
多个任务同时在计算机中运行时,通常一个任务对应着屏幕上的 ___1___ 个窗口。
设备管理具有设备独立性的特点,操作系统以系统调用方式来请求某类设备时,使用的是逻辑设备名。而在程序实际执行时,将逻辑设备名转换为对应的物理设备名。
进程间的基本关系同步与互斥
4.支持程序浮动的地址转换机制是动态重定位。
降低进程优先级的合理时机是进程的时间片用完
在指令系统中,只能由操作系统使用的指令称为特权指令
5.经典同步问题
1.生产者消费者模型(用信号量实现)
empty记录空缓冲区的数量,该信号在生产者进行中使用,当empty不为0的时候,生产者才能放入物品。
full记录满缓冲区的数量,该信号在消费者进程中使用,当full不为0的时候,消费者才能取走食物。
应先测试信号,在对缓冲区进行加锁,
否则,即现进行加锁down(mutex)在执行down(empty)。生产者对缓冲区加锁后,执行down(empty),empty
=0,此时生产者进入休眠状态。消费者不能进入缓冲区。同时生产者对缓冲区加锁后,消费者不能进行up(empty)操作,这样
empty将永远是0,导致生产者永远等待,不会释放锁;消费者也会因此一直等待下去。
2.读者-写者问题
3.哲学家进餐问题
6.
- 进程同步:控制多个进程按一定顺序执行;
- 进程通信:进程间传输信息。
进程通信是一种手段,而进程同步是一种目的。也可以说,为了能够达到进程同步的目的,需要让进程进行通信,传输一些进程同步所需要的信息。
7.套接字
与其它通信机制不同的是,它可用于不同机器间的进程通信