IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 操作系统—进程 -> 正文阅读

[系统运维]操作系统—进程

进程的定义、组成、组织方式、特征

进程的定义

程序:一个指令序列 早期的计算机只支持单道程序

系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放的位置)

PCB、程序段、数据段三部分构成了进程实体(进程映像),一般来说,进程实体简称进程,创建进程实际上是创建进程中的PCB,撤销进程则是撤销进程中的PCB;PCB是进程存在的唯一标志。进程强调动态性。

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

注:严格来说,进程实体和进程是不一样的,进程实体是静态的,进程是动态。

进程的组织

进程的组织方式:连接方式、索引方式

连接方式:按照进程状态将PCB分为多个队列;操作系统持有指向各个队列的指针。

索引方式:根据进程状态不同,建立几张索引表;操作系统持有指向各个索引表的指针。

进程的特征

  1. 动态性:进程是程序的一次执行过程,是动态的产生变化和消亡的
  2. 并发性:内存中有多个进程实体,各进程可并发执行
  3. 独立性:进程是能够独立进行,独立获得资源、独立接受调度的基本单位
  4. 异步性:各进程按照各自独立的,不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题
  5. 结构性:每个进程会配置一个PCB,结构上看,进程由程序段、数据段、PCB组成

进程的状态和转换

进程的三种基本状态:运行态、就绪态、阻塞态

运行态:占有CPU,并在CPU上运行

就绪态:已经具备运行条件,由于没有空闲CPU,而暂时不能运行

阻塞态:因等待某一事件而暂时不能运行

另外两种状态:创建态、终止态

创建态:进程正在被创建,操作系统为进程分配资源,初始化PCB

终止态:进程正在从系统中撤销,操作系统会回收进程拥有的资源,撤销PCB

进程的转换

就绪态—运行态:进程被调度

运行态—就绪态:时间片到,或CPU被其他高优先级的进程抢占

运行态—阻塞态:等待系统资源分配,或等待某事件发生(主动行为)

阻塞态—就绪态:资源分配到位,等待的事件发生(被动行为)

创建态—就绪态:系统完成创建进程的相关工作
在这里插入图片描述

运行态—终止态:进程运行结束,或运行过程中遇到不可修复的错误

进程控制

进程控制的主要功能是对系统中所有进程所实施的有效管理,具有创建新进程、撤销已有进程、实现进程状态转换等功能(就是实现进程状态的转换)

用原语实现进程控制,原语的特点的执行过程中不允许被中断,只能一气呵成。不可中断的操作称为原子操作。

原语采用关中断指令和开中断指令实现

相关原语:进程的创建、终止、阻塞、唤醒、切换(阻塞和唤醒成对出现)

进程通信

进程通信指的是进程之间的信息交换

共享存储

基于数据结构(低级)和存储器的共享

两个进程对共享空间的访问必须是互斥的

消息传递

直接、间接通信方式

进程之间的数据交换以格式化的消息为单位,进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换

直接通信方式:消息直接挂到接收进程的消息缓冲队列上

间接通信方式:消息先要发到中间实体(信箱)中,也称“信箱通信方式”,例如:电子邮件系统

管道通信

管道是指用于链接读写进程的一个共享文件,又名pipe文件,其实是在内存中开辟一个大小固定的缓冲区

管道只能采用半双工通信,某一时间段内只能单向传输,若想实现双向传输,需要设置两个管道。

线程概念和多线程模型

传统进程机制中,进程是资源分配调度的基本单位,引入线程机制后,进程是资源分配的基本单位,线程是调度的基本单位;

传统进程机制中,只能线程间并发进行,引入线程后,各个线程之间也能并发进行,提升了并发度;

传统的进程间并发,需要切换进程的运行环境,系统开销很大,线程间并发,如果是同一进程内的线程切换,则不需要切换进程环境,系统开销小

线程的属性

在这里插入图片描述

多线程模型

多对一:多个用户及线程映射到一个内核级线程。每个用户级线程,只对应一个内核级线程。

优点:用户级线程的切换在用户空间即可完成,不需要切换到核心态,线程管理的开销小,效率高。

缺点:当一个用户级线程被堵塞后,整个进程都会被堵塞,并发度不高。多个线程不可在多核处理机上并行运行。

一对一:一个用户及线程映射到一个内核级线程,每个用户进程有与用户级线程同数量的内核级线程。

优点:当一个线程被阻塞后,别的线程可以继续执行,并发能力强,多线程可以在多核处理机上并行执行。

缺点:一个用户进程,会占用多个内核级线程,线程切换有操作系统内核完成,需要切换到核心态,县城管理成本高,开销大。

多对多:n用户及线程,映射到m个内核级线程,(n>=m),每个用户进程对应m个内核级进程。

克服了多对一模型并发度不高的缺点,又克服了一对一模型中用户进程占用太多内核级线程,开销太大的缺点。

成,需要切换到核心态,县城管理成本高,开销大。

多对多:n用户及线程,映射到m个内核级线程,(n>=m),每个用户进程对应m个内核级进程。

克服了多对一模型并发度不高的缺点,又克服了一对一模型中用户进程占用太多内核级线程,开销太大的缺点。

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 20:06:08  更:2021-07-04 20:06:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:40:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码