操作系统-进程

来源:互联网 发布:linux tomcat自动关闭 编辑:程序博客网 时间:2024/06/05 15:40

一、前言

进程是操作系统中极其重要的概念。在了解进程之前,我们需要对程序和进程之间做一些区别。程序是静态的概念,进程是动态的概念。进程是程序的执行单元,进程可以执行多个程序。这样看来,程序与进程存在着密切关系,在了解进程之前,我们先了解一下程序。

二、程序

1. 前驱图

 前驱图是指一个有向无循环图,DAG(Directed Acyclic Graph) 。

2. 程序顺序执行的特征

  • 顺序性:处理机严格按照程序所规定的顺序执行。
  • 封闭性:程序在封闭的环境下运行,即程序运行时独占全机资源。
  • 可再现性:程序重复执行时,可获得相同的结果。

3. 程序并行执行

将会失去程序顺序执行的特征。

三、进程

在程序并发执行中,失去了程序顺序执行的特征。在多道程序环境下,程序的执行属于并发执行。为了使程序可以并发执行,引入了进程的概念。

1. 进程

  • 进程由程序段、相关数据段和PCB(Process control block)进程控制块构成了进程实体。PCB描述了进程的基本情况和活动过程,系统利用PCB对程序进程进行管理与控制。

2. 进程特征

  • 动态性:动态概念。
  • 并发性:多个进程同时存在于内存。
  • 独立性:进程是一个能独立运行、独立获得资源和独立接受调度的基本单位。
  • 异步性:异步方式的执行,各自独立、以不可预知的速度向前推进。

3.进程状态

  • 进程在系统中运行时,是呈现间断性地运行规律,所以进程在生命周期中具有多种状态。主要包括,就绪状态,执行状态,阻塞状态。
  • 就绪状态:是指进程已准备好运行状态,等待分配cpu资源,其他运行所需资源已经准备好。
  • 运行状态:是指进程正在运行的状态。
  • 阻塞状态:是指进程由于发生某种事件暂时无法继续执行的状态。

4、PCB

PCB的信息:4.1. 进程标识符:用于唯一标识一个进程。作为独立运行的基本单位的标志。4.2. 处理机状态:保存了处理机的上下文。    - 通用寄存器    - 指令寄存器    - 程序状态码    - 用户栈指针    通过保存处理机状态,能实现间断性运行方式。4.3. 进程调度信息:保存了进程的状态以及调度有关的信息。    - 进程状态    - 进程优先级    - 进程调度信息    - 事件    提供了进程调度的相关信息,实现进程的调度。4.4. 进程控制信息:保存了进程控制的有关信息。    - 程序和数据的地址    - 进程同步和通信机制    - 资源清单    - 链接指针    实现进程管理以及进程间通信。4.5 PCB组织方式    线性方式,连接方式,索引方式

四、进程控制

进程控制是进程管理中的最基本功能,一般是由OS的内核中的原语来实现的。

1.内核

通常将一些与硬件紧密相关的模块(如中断处理程序)、各种常用设备的驱动程序以及运行频率较高的模块(如时钟管理、进程调度),都安排在仅靠硬件的软件层次中,将它们常驻内存,即通常被称为OS内核。内核主要具备的功能:1.1 支撑功能:提供给OS其他模块的一些基本功能 - 中断处理:内核中最基本的功能,是整个OS赖以活动的基础。 - 时钟管理: - 原语操作1.2 资源管理功能: - 进程管理 - 存储器管理 - 设备管理

2.进程创建

2.1申请空白PCB2.2为新进程分配其运行所需的资源,包括各种物理和逻辑资源,如内存、文件、I/O设备以及CPU时间。2.3初始化进程控制块。包括初始化标识信息、初始化处理器状态信息、初始化处理器控制信息。2.4如果就绪队列能够接纳新进程,则插入就绪队列。

3.进程终止

3.1进程终止的事件:正常结束(完成进程的任务)、异常结束(越界、保护错、非法指令、特权指令、运行超时、等待超时、I/O故障)、外界干预(OS、父进程请求、父进程终止)。3.2进程终止过程:取出PCB、置为状态、终止子孙状态、归还资源(父进程或者系统)、移除PCB所在队列。

4.进程阻塞唤醒

4.1进程阻塞原因:    - 向系统请求共享资源失败    - 等待某种操作完后才能    - 新数据尚未到达    - 等待新任务到达4.2进程阻塞过程:将进程状态改为阻塞,进程加入相应阻塞队列。4.3进程唤醒过程:从阻塞队列移除,将状态设为就绪,插入到就绪队列。

五、进程同步

1.同步机制遵循的规则:

    - 空闲让进    - 忙则等待    - 有限等待    - 让权等待

2.信号量机制

2.1信号量分类:整型信号量、记录型信号量、AND信号量、信号量集。2.2信号量用途:实现共享资源互斥、控制进程间的前驱关系。

六、进程通信

1.通信类型

- 共享存储器系统:分为共享数据结构、共享存储结构- 管道通信系统:用于连接一个读进程和写进程的文件。- 消息传递系统:直接通信、间接通信- 客户机服务器系统:套接字、RPC

七、线程

1.线程与进程的比较

1.1调度基本单位:进程内线程间切换代价低。1.2并发性:进程的多个线程可以并行。1.3拥有资源:同一进程的多个线程共享进程的资源。线程拥有更少的资源。1.4独立性:同一进程的线程的独立性比较弱。1.5系统开销:线程的开销较小。1.6支持多处理机系统; 更好支持多处理机系统。

2.线程状态

包括执行状态、就绪状态、阻塞状态。

3.TCB

- 线程标识符- 一组寄存器- 线程运行状态- 线程专有的存储区,存放线程切换的现场保护信息以及相关统计信息- 线程优先级- 信号屏蔽- 堆栈指针

4.线程实现

4.1内核支持线程:    优点:支持同一进程的多个线程的并发执行。    缺点:线程管理与调度都在内核中实现,系统开销大。4.2用户级线程    优点:节省了模式切换的开销,调度算法可以使进程专有,用户级线程实现与OS平台无关。    缺点:系统调用的阻塞问题,多线程不能利用多处理机优点。4.3组合方式    - 多对一    - 一对一    - 多对多
0 0