进程控制通过原语来实现:
1.创建原语。
进程的控制是通过原语实现的。创建一个进程的主要任务是建立进程控制PCB。撤消进程的实质是撤消进程控制块PCB。
2. 撤消原语。
3. 阻塞原语。
4. 唤醒原语。
进程调度是处理机调度:
1. 记录系统中所有进程的执行状态。
2. 根据一定调度算法,从就绪队列中选出一个进程来,准备把CPU分给它。
3. 把CPU分给进程。
进程调度一般在下面的情况下发生的:
1. 正在执行的进程执行完毕。
2. 正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态。
3. 正在执行的进程调用了P原语操作,从而因为资源不足而被阻塞,或调用了V原语操作击活了等待资源的进程。
4. 在分时系统中时间片用完。
在CPU方式是可以剥夺的时候,还有:
1. 就绪队列中的某个进程的优先级边的高与当前进程的优先级,从而引起进进程调度。进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。
1. 先进先出算法。
2. 时间片轮转算法。
3. 最高优先数算法。
静态优先数。动态优先数。
在多道程序系统中,一组进程中的每个进程均无限期的等待被该组进程中的另一个进程所占有且永远不会释放的资源,这种现象处于死锁状态。处于死琐状态的进程称为死琐进程。发生死琐时,死琐进程至少有两个。所有死琐进程都有等待资源,其中,至少有两个死琐进程占用了资源。
永久性资源和临时性资源。
产生死琐的原因是:
1 系统提供的资源数量有限,不能满足每个进程的使用。
2 多道程序设计时,进程推进次序不合理。
产生死琐的4个必要条件:
1 互斥条件。2 不可剥夺条件。3 部分分配。4 循环等待。
三种预防措施:
1 采用静态资源预分配,破坏“部分分配”条件。
2 允许进程剥夺其他进程占用的资源,从而破坏“不可剥夺”条件。
3 采用资源有序分配法,破坏“环路”条件。
安全状态是没有死琐的状态。
什么时候进行死琐检测主要取决于死琐发生的频率和死琐所涉及的进程个数。
死琐的解除:
1 资源剥夺法。
2 撤消进程法。
比进程更小的能独立运行的基本单位:线程。
每个线程有一个唯一的标识符和一张线程描述表。
不同的线程可以执行相同的程序。
同一个进程中的线程共享该进程的内存地址空间。
线程是处理机的独立调度单位,多个线程是可以并发执行的。
引入线程的好处:
1 创建一个新线程花费的时间少。
2 两个线程的切换时间少。
3 由于同一个进程内的现成共享内存和文件,所以线程之间互相通信必须调用内核。
4 线程能独立执行,能充分利用和发挥处理机与外围设备并行工作的能力。
存储管理主要是对内存空间的管理。
内存空间分为:系统区;用户区。
内存共享是两个或多个线程共用内存中相同的区域,其目的是节省内存空间,实现进程之间的通信,提高内存空间的利用率。
存储共享的内容可以是程序的代码,也可是数据,如果是代码共享 ,则必须是纯代码,或叫做“可再入程序”,既它在运行过程中不修改自身。代码共享的目的是节省内存。
存储保护:
1 防止地址越界。
2 防止操作越权。
实存储器:内存,外存,高速缓存。
虚存储器:1.用户程序的逻辑地址构成的地址空间。
2.当内存容量不满足用户要求时候,采用一种将内存空间与外存空间有机结合的在一起,利用外存自动调动的方法构成一个大的存储器。
地址影射:为了保证CPU执行程序指令时候能够正确访问存储单元,需要将用户程序中的逻辑地址转化为运行时可由机器直接寻址的物理地址。
分为:静态地址影射和动态地址影射