操作系统-进程
来源:互联网 发布: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
- 操作系统---进程
- 【操作系统】进程
- 操作系统进程
- 操作系统---进程
- 操作系统-进程
- 操作系统---进程
- 操作系统-进程
- 【操作系统】进程
- 操作系统进程
- 操作系统:进程
- 操作系统------进程管理(进程)
- 操作系统:进程和进程通信
- [转帖]操作系统进程描述
- 操作系统进程描述
- 操作系统进程描述
- 操作系统:进程间通信
- 操作系统:进程通信
- WindowsXP操作系统进程
- 合唱队
- 蓝牙Ble基础
- 委托概念(难点)
- (16)Struts2_OGNL读取Map栈及其他字段和方法属性
- OKHttp源码分析2 - Request的创建和发送
- 操作系统-进程
- 数据结构(7)--队列
- 决策树
- 数据结构(8)--树
- React-Native入门指导之iOS篇 —— 一、准备工作
- 【微信服务号】ngrok内网穿透
- case语句
- Ubuntu 16.04查看软件安装位置
- 下拉菜单的实现(一)