计算机原理:进程管理

程序在运行肯定需要用的cpu与io设备。 在程序在等待io的时候cpu就是空闲状态, 为了更好的利用cpu,我们应该在等待时候召唤其他进程继续执行,这样可以提高cpu利用率,操作系统的一个主要目的就是充分利用cpu。
功能 = 结构 + 算法
进程管理 : PCB + CPU调度算法。
并发:只是一段时间内支持多个进程在执行。 在底层一个CPU只能有一个进程在运行。并发只是一个人为的感受,举个例子 假设1秒钟时间里有10个进程,那么计算机最多每隔100毫秒就更换一个进程。这样计算机就能在一秒执行10个进程,这10个进程给用户的感受是在一秒钟内同时执行了,因为时间段太小人也感受不出来。实际上没有并行。
并行:同时运行,前提至少2个CPU.
上下午切换:支持并发在所难免的就是要进行进程的切换(CPU不支持并行,因为多个程序在一个CPU中运行程序计数器,寄存器,指针之类的信息就会混乱),需要进程执行现场保留到PCB,在把要执行进程PCB载入CPU。
进程状态:创建,就绪,执行,等待,终止。
内核级线程:执行在内核态(能有更多的操作权限),内核级线程是有操作系统去实现的。一个PCB下面可以管理多个TCB, TCB共享PCB资源,TCB是执行流单位。此时的操作系统就不会按进程去均分时间。而是利用TCB去均分时间。假设此时有10个进程,按照之前的列子那个进程切换需要切换十次的PCB, 现在如果是2个进程,每个进程中有5个线程,那么此时只需要切换两次PCB,切换10次TCB,由于TCB只是执行流程,所以切换所耗的时间会小很多。
用户级线程(协程):执行在用户态,用户级线程是用程序线程库去管理,所以操作系统感觉不到。同一执行流下的线程切换所耗的时间跟少,因为只是逻辑程序上的切换,无需调用操作系统的一些操作。在均分时间的时候操作系统会分给执行单位,这个执行单位在利用线程库分配给他的线程(是用户级别的执行流程)。如果一个线程崩溃就会引起所以线程无法运行。
轻量级进程:有进程的特性,但是少了一些不需要的东西,是上下文切换更快捷。
操作系统的进程管理方式:
支持内核线程的 - 进程 - 内核线程 - 用户线程
不支持的 - 进程 - 用户线程
不支持的 - 进程 - 轻量级进程 - 用户线程

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!