操作系统中的进程管理

本章节目录

1. 进程的概念

1.1 进程的定义

1.2 进程的特征

1.3 进程控制块

1.4 程序和进程的比较

1.4.1 程序的定义

1.4.2 进程的定义

1.4.3 程序的执行顺序

1.4.4 程序和进程的区别

1.4.5 程序和进程之间的联系

1.5 进程的状态

1.6 进程的组织

1.6.1 链接方式

1.6.2 索引方式

1.6.3 进程队列

2.进程的控制

2.1 进程的创建

2.1.1 何时需要创建新进程

2.1.2 创建新进程的步骤

2.2 进程的阻塞

2.2.1 进程阻塞的场景

2.2.2 进程阻塞的过程

2.3 进程的唤醒

2.3.1 进程唤醒的过程

2.4 进程的终止

2.4.1 进程被终止的情况

2.4.2 进程终止的过程

3.进程同步

3.1 进程同步的定义

3.2 多道程序环境下进程之间的关系

3.2.1 资源共享关系

3.2.2 相互合作关系

3.3 同步机制应遵循的原则

3.4 进程同步中的信号量机制

3.4.1 整形信号量机制

3.4.2 记录型信号量机制

3.4.3 AND型信号量机制

4.进程通信

4.1 进程通信机制

5.线程

5.1 线程的概念

5.2 线程和进程的位置关系

5.3 线程的分类

5.4 线程的三种基本状态

5.5 线程控制块

5.6 线程与进程的关系

6.操作系统内核

6.1 支撑功能

6.1.1 什么是中断处理

6.1.2 为什么需要中断处理

6.1.3 什么是时钟管理

6.1.4 计算机系统中的时钟

6.1.5 RTC时钟、OS时钟和应用程序之间的关系

6.1.6 操作系统中的时钟机制

6.1.7 系统调用

什么是系统调用

系统调用和一般函数调用的区别

6.2 资源管理功能


1. 进程的概念

1.1 进程的定义

1.允许并发执行的程序在某个数据集合上的运行过程

2.进程是由正文段、用户数据段和进程控制块共同组成的执行环境。

其中,正文段是指存放被执行的机器指令。用户数据段是指存放用户数据。进程控制块指存放进程的运行环境。

1.2 进程的特征

1.并发性。多个进程实体能在一段时间间隔内同时运行。并发性是进程和现代操作系统的重要特征。

2.动态性。进程是实体的执行过程,其过程是动态的(创建进程、获得CPU、执行指令、运行中止)

3.独立性。独立运行和资源调度的基本单位。

4.异步性。进程的执行时断时续,无法预知何时执行,何时停止。

5.结构特征。进程实体包括用户正文段、用户数据段、进程控制块。

1.3 进程控制块

定义:进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。

进程控制块中记录了操作系统所需要的、用于描述进程及控制进程运行所需的全部信息。主要包含:进程标识符信息、处理机状态信息、进程调度信息、进程控制信息。

  • 进程标识符信息:用于唯一表示一个进程
  • 处理机状态信息:包含通用寄存器、指令计数器、程序状态字、用户栈指针
  • 进程调度信息:包括进程状态信息、进程优先级和进程调度所需的其他信息
  • 进程控制信息:包括程序和数据的地址、进程同步和通信机制、资源清单、链接指针

1.4 程序和进程的比较

1.4.1 程序的定义

具有独立功能的一组指令的集合

1.4.2 进程的定义

允许并发执行的程序在某个数据集合上的运行过程

1.4.3 程序的执行顺序

1.顺序执行。先进入内存的程序先运行,后面的程序依次排队等候。

    顺序执行的特点:顺序性、封闭性、可再现性

2.并发执行。在同一时间间隔内运行多个程序。一个程序执行结束前,可以同时执行其他程序。

    并发执行又分为宏观并行和微观串行:

  • 宏观并行:用户可以看到多个程序在同时运行
  • 微观串行:任意时刻一个CPU上只有一个程序在被执行

   并发执行的特点有:

  • 间断性:程序在CPU上执行时,是时断时续的
  • 失去封闭性:系统的状态不再是只对正在执行的程序可见
  • 不可再现性:同一个程序在输入相同的情况下多次运行,可能出现不同的结果

1.4.4 程序和进程的区别

1.程序是静态的、永久的、程序是一组指令的集合

2.进程是动态的、暂时的,进程则是包含了正文段、用户数据段和进程控制块的实体

1.4.5 程序和进程之间的联系

1.进程是程序的一次执行

2.一个程序可以对应多个进程

3.同一个程序可以在不同的数据集合上运行,构成不同的进程

1.5 进程的状态

分为就绪态、执行态、阻塞态三种状态。下面用一个概念图来展示一下进程状态间的联系。

根据进程的调度策略,某一进程会被选中或者落选。被选中的从就绪状态进入到执行状态。

等待某一事件,可能是在申请资源时出现了故障,进而从执行态进入到了阻塞态。

等待事件发生,顺利申请到资源后,进程状态由阻塞态进入到就绪态。

1.6 进程的组织

1.6.1 链接方式

把系统中具有相同状态的进程控制块PCB用其中的链接字连接成一个队列。

例如

执行指针:PCB1(正在执行中的进程)

就绪队列指针:PCB2、PCB3、PCB4

阻塞队列指针:PCB5、PCB6、PCB7

1.6.2 索引方式

系统根据所有进程的状态,建立索引表,索引表中的每个表项指向一个PCB物理块

1.6.3 进程队列

把具有相同状态的进程控制块用队列组织起来。

2.进程的控制

进程的控制分为:创建、阻塞、唤醒、终止

2.1 进程的创建

2.1.1 何时需要创建新进程

用户登录、作业调度、提供服务、应用请求

2.1.2 创建新进程的步骤

1.申请空白PCB

2.为新进程分配资源

3.初始化进程控制块

4.将新进程置入到就绪队列

2.2 进程的阻塞

2.2.1 进程阻塞的场景

1.请求系统服务

2.启动某种操作

3.新数据尚未到达

4.无新工作可做

2.2.2 进程阻塞的过程

1.将进程的状态改为阻塞状态

2.将进程置入到相应的阻塞队列

3.转到进程调度程序,从就绪队列中选择进程为其分配CPU

2.3 进程的唤醒

2.3.1 进程唤醒的过程

1. 将进程从阻塞队列中移除

2. 将进程状态由阻塞状态改为就绪状态

3. 将进程置入到就绪队列中

2.4 进程的终止

2.4.1 进程被终止的情况

进程正常执行,直到执行完毕。

2.4.2 进程终止的过程

1. 从进程PCB中读进程状态

2. 若进程正在执行,则终止进程的执行

3. 释放CPU资源

4. 将终止进程的PCB移除

3.进程同步

3.1 进程同步的定义

保证在多任务共享系统资源的情况下,程序执行能得到正确的结果

3.2 多道程序环境下进程之间的关系

3.2.1 资源共享关系

保证各进程以互斥的方式访问临界资源

临界资源的定义:必须以互斥方式访问的共享资源

临界区的定义:进程中访问临界资源的那段代码被称为临界区

3.2.2 相互合作关系

保证相互合作的各进程协调执行

3.3 同步机制应遵循的原则

空闲让进:没有进程处于临界区,应允许一个请求进入临界区的进程进入

忙则等待:临界区已有进程,其他试图进入临界区的进程必须等待

有限等待:对于要访问临界资源的进程,应保证有限时间内进入临界区

让权等待:申请不到访问权,应释放处理机,以免浪费CPU资源

3.4 进程同步中的信号量机制

用信号量的取值来表示自资源的使用状况,以此为基础实现进程同步。

根据信号量类型不同,信号量机制可以分为三种:整形信号量机制、记录型信号量机制、AND型信号量机制

3.4.1 整形信号量机制

整形信号量是表示共享资源状态且只能由特殊的原子操作改变的整形量

其原理为:定义一个整形变量,用该变量的值来标记资源的使用情况,初始值为1

当整形信号量 > 0时,表示有资源可用

当整形信号量 <= 0 时,表示资源忙,需要等待

整型信号量机制中,用于申请资源的是 wait 原子操作。

整型信号量机制中,用于释放资源的是 signed 原子操作。

3.4.2 记录型信号量机制

定义一个记录型变量,用该变量的值来标记资源的使用情况。

3.4.3 AND型信号量机制

4.进程通信

4.1 进程通信机制

  • 共享存储器系统:相互通信的进程共享某些数据结构或共享存储区
  • 消息传递系统:进程间通过操作系统提供的一组通信程序传递消息
  • 管道通信:进程间通过管道进行信息通信
  • 消息缓冲队列:利用消息缓冲区、发送原语和接收原语实现信息通信

5.线程

5.1 线程的概念

线程是进程中的一个实体,是被系统独立调度和分派的基本单位

线程只拥有在运行中必需的资源,包括程序计数器、一组寄存器和栈,但它可以和同一进程中的其他线程共享进程所拥有的全部资源。

5.2 线程和进程的位置关系

5.3 线程的分类

线程的实现可以分为两类:

  • 内核级线程,依赖于内核
  • 用户级线程,不依赖内核

5.4 线程的三种基本状态

三种状态:就绪态、运行态、阻塞态

5.5 线程控制块

每一个线程都由一个数据结构表示,包括它的基本状态,这个数据结构就叫做线程控制块TCB

TCB记录了操作系统需要的、用于描述线程情况及控制线程运行所需的全部信息

5.6 线程与进程的关系

1. 资源和调度。线程是程序执行的基本单位,进程是拥有资源的基本单位。

2. 地址空间资源。不同进程的地址空间是相互独立的,而同一进程中的各线程共享同一地址空间。

3. 通信关系。进程之间的通信必须使用操作系统提供的进程间通信机制,而同一进程中的各线程间可以直接通信。

4. 并发性。多进程之间可以并发执行,多线程之间也可以并发执行。

5. 系统开销。线程切换的开销比进程切换的开销小。

6.操作系统内核

操作系统内核是计算机硬件的第一次扩充,与硬件的关系非常密切。

操作系统内核的两大功能:支撑功能、资源管理功能

6.1 支撑功能

支撑功能细分为:中断处理、时钟管理、原语操作

6.1.1 什么是中断处理

中断是改变处理器执行指令顺序的一种事件。当出现中断时,计算机停止现在程序的运行,转向对这些中断事件的处理,处理结束后再返回到现行程序的间断处。

6.1.2 为什么需要中断处理

引入中断机制后,CPU可以与其他设备并行工作,能有效提高CPU的利用率

6.1.3 什么是时钟管理

时钟是计算机系统的脉搏,计算机的很多活动都是由定时测量来驱动的。

系统可以利用时钟机制来限制一个用户进程在CPU上连续执行的时间。

6.1.4 计算机系统中的时钟

计算机系统中的时钟主要包含实时时钟RTC、OS时钟

计算机开机加电后,操作系统通过BIOS获取当前RTC时钟的值作为系统时间

OS时钟产生于PC主板上的定时/计数芯片,在开机时有效,由操作系统控制。

6.1.5 RTC时钟、OS时钟和应用程序之间的关系

6.1.6 操作系统中的时钟机制

依靠时钟硬件和时钟驱动程序来保存当前的日期时间和维持定时器

具体来讲就是:

1. 维护日期和时间

2. 递减当前进程在一个时间片内的剩余执行时间,防止运行超时

3. 对CPU的使用情况记账

4. 递减报警计数器

6.1.7 系统调用

什么是系统调用

系统调用是一群预先定义好的模块,提供一条管道让应用程序能由此到核心程序的服务

系统调用是系统程序用户程序之间的接口

系统调用和一般函数调用的区别

1. 系统调用运行在系统态,而一般函数运行在用户态

2. 系统调用与一般函数调用的执行过程不同。系统调用执行时,当前进程被中断,由系统找相应的系统调用子程序,并在系统态下执行,执行结果返回进程。

3. 系统调用要进行“中断处理”,比一般函数调用多了一些系统开销。

6.2 资源管理功能

资源管理功能分为:进程管理、存储管理、设备管理

发布了141 篇原创文章 · 获赞 38 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/baidu_35901646/article/details/104241029