操作系统的进程线程看这一篇就够了

进程介绍

没有配置OS之前,资源只属于当前运行的程序。配置了OS之后引入多道程序设计的概念。进程就是为了隔离资源、运行环境,提升资源的利用率。这里的资源指的是处理器资源、存储器资源、IO设备资源、文件资源。

进程是系统进行资源分配的基本单位。进程作为程序独立运行的载体,保障程序正常执行。进程的存在使得操作系统资源的利用率大幅提升。进程的实体

进程实体包括标识符、优先级、程序计数器、内存指针、上下文数据、IO状态信息、记账信息。

标识符:唯一标识进程。状态:标记进程状态,如:运行态、阻塞态。程序计数器:指向下条指令地址。内存指针:程序代码、进程数据地址。上下文数据:进程执行时处理器存储的数据。IO状态信息:被进程IO操作所占用的文件列表。记账信息:使用处理器时间、时钟数总和。进程控制块(PCB)用于描述和控制进程运行的通用数据结构。记录进程当前状态和控制进程运行的全部信息。PCB使得进程是能够独立运行的基本单元。线程

线程(Thread)共享进程资源,有如下三个特点:

操作系统进程运行调度的最小单位。进程中实际运行工作的单位。一个进程并发多个线程,每个进程执行不同任务。进程五状态模型

创建、就绪(获得除了CPU外的其他资源的状态)、阻塞(其他设备未就绪)、执行、终止。

创建状态:创建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态。fork函数创建。

终止状态:进程结束由系统清理或者归还PCB。

进程同步生产者-消费者问题哲学家就餐问题

筷子为临界资源。哲学家之间没有通信会有五个哲学家同时拿起左边筷子均等待右边筷子导致饿死,关键问题在于缺乏通信。

进程间同步

对竞争资源在多进程间进行使用次序的协调、使得并发执行的多个进程之间可以有效使用资源和互相合作。

同步原则

空闲让进、忙则等待、有限等待、让权等待。

同步方法

消息队列、共享存储、信号量。

线程同步

进程间多个线程也需要同步。

线程同步方法

互斥量、读写锁、自旋锁、条件变量。

进程调度介绍就绪队列排队机制。选择运行进程的委派机制。新老进程的上下文切换机制:保存当前进程的上下文信息(cache-主存),装入被委派进程的运行上下文(-cache)。进程调度方式非抢占式调度抢占式调度进程调度算法先来先服务调度算法短进程优先调度算法高优先权优先调度算法时间片轮转调度算法死锁

进程竞争资源或者由于彼此通信而造成的一种阻塞现象,若无外力作用都无法推进下去。死锁产生:

竞争资源:资源不够。进程调度顺序不当。

死锁必要条件:

互斥条件。请求保持条件。不可剥夺条件。环路等待条件。

死锁处理:

破坏死锁产生条件:

进程运行前,一次性申请所有资源。进程请求资源不到,释放当前所有资源。可用资源线性申请。

银行家算法

存储管理

确保有内存可用、确保可以从可用内存中取出内存进行使用、使用完成的内存回收后可供分配。

内存分配单一连续分配

最简单的内存分配方式,只能在单用户、单进程的操作系统中使用。

固定分区分配

支持多道程序的最简单存储分配方式。

动态分区分配

从开始顺序查找适合内存区。头部地址空间不断被拆分。改进后循环适应算法,从上次分配地址开始分配。

空闲区链表按容量大小排序,遍历空闲区链表找到最佳合适空闲区。避免大材小用。

多个空闲区链表,每个空闲区链表存储一种容量的空闲区。

快速适应算法(QF算法)最佳适应算法(BF算法)首次适应算法(FF算法)内存回收页式存储管理

以页为单位把进程空间装进物理内存中分散的物理块。

页-页表(页号-块地址)-块。页表过大,采用二级页表,按需加载。页

转载请注明地址:http://www.1xbbk.net/jwbys/500.html


  • 上一篇文章:
  • 下一篇文章:
  • 网站简介 广告合作 发布优势 服务条款 隐私保护 网站地图 版权声明
    冀ICP备19027023号-7