首页 > 系统相关 >操作系统笔记分享(第二章 进程的描述与控制)

操作系统笔记分享(第二章 进程的描述与控制)

时间:2024-07-07 12:31:16浏览次数:12  
标签:操作系统 通信 笔记 PCB 线程 内核 进程 第二章 标识符

文章目录

介绍

我只整理了一些比较关键的、考试可能会考的点,有些具体琐碎的内容我没整理到笔记中。后面会持续更新,希望对大家有所帮助!

二、进程的描述与控制

2.1 前驱图和程序执行

前驱图

个人感觉类似算法的 拓扑排序

  • 有向无环图,看似有环,实则被有向限制,不可能回到原来的位置

  • 初始节点 无前驱的节点

  • 终止节点 无后继的节点

  • 特征 顺序性 封闭性 可再现性

程序并发执行

在系统中引入了多道程序技术,使程序或程序段间能并发执行

但是只有不存在前趋关系的程序才有可能并发执行

特征 间断性 失去封闭性 不可再现性

不可再现性:体现为共享资源时,不同程序抢占使用的时间不同导致资源的状态也不同,比如同个变量在不同时间内被运算并重新赋值

解决方案:不要共用资源,或先规定顺序,不要没执行完一个功能就被别人抢了

2.2 进程的描述

只有并发而没有进程,则会引发上述提到的 间断性 失去封闭性 不可再现性 等缺点

为了使程序可以并发执行,并且可以对并发执行的程序加以描述和控制,引入进程这一概念

定义:进程是程序的执行过程,是系统进行资源分配和调度的一个独立单位

进程控制块PCB

为了使参与并发执行的每个程序(含数据)都能独立地运行,在OS中必须为之配置一个专门的数据结构,称之为进程控制块(PCB)

如果没这个PCB,那么程序的并发会互相影响,没有一个框给它圈住

进程特征

进程的四个基本特征

动态性 并发性 独立性 异步性

进程状态

就绪、执行、阻塞

阻塞指请求资源此时正被其他程序所使用

激活与挂起

挂起指将进程变成静止状态: 活动就绪/阻塞 -> 静止就绪/阻塞

激活就是将静止变活动

进程的三个基本状态,及其转换关系(如下图)
请添加图片描述

PCB的作用

作为独立运行基本单位的标志
能实现间断性运行方式 (数据存在PCB中)
提供进程管理所需要的信息 (PCB有对应内存地址)
提供进程调度所需要的信息
实现与其他进程的同步与通信 (每个进程中都要设置相应的用于同步的信号量)

PCB的信息

1. 进程标识符

用于唯一地标识一个进程

一个进程通常有两种标识符:

①外部标识符

为了方便用户(进程)对进程的访问, 须为每个进程设置一个外部标识符

为了描述进程的家族关系,还应设置父进程标识符子进程标识符

此外, 还可设置用户标识符,以指示拥有该进程的用户

②内部标识符

为了方便系统对进程的使用

赋予每个进程唯一的一个数字标识符,它通常是一个进程的序号

2. 处理机状态

也称为处理机状态信息/处理机上下文

由通用寄存器、指令计数器等寄存器组成,进程切换时能保持断点处的状态信息

3. 进程调度信息

包括 进程状态 进程优先级 进程调度所需要的其他信息 事件

4. 进程控制信息

包括 程序和数据的地址 进程同步和通信机制 资源清单 链接指针

PCB的组织方式

1. 线性方式

一张线性表,适合数据量不多的情况

2. 链接方式

通过PCB中的链接字,将具有相同状态的进程的PCB分别链接成一个队列

这样即可形成就绪队列、若干个阻塞队列空闲队列

3. 索引方式

系统根据所有进程状态的不同,建立几张索引表,如就绪索引表阻塞索引表等,记录对应PCB的内存地址

2.3 进程控制

进程创建

引起一个进程去创建另一个进程的典型事件有4类

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

创建步骤

申请空白PCB

为新进程分配其运行所需的资源

初始化PCB

插入就绪队列

进程终止

正常结束

异常结束

越界错  保护错  指令错  特权指令错  运行超时  等待超时  算术运算错  I/O错

外界干扰干预

操作员或OS干预    父进程请求    父进程终止

进程阻塞与唤醒

阻塞:进程因等待、请求资源失败而进入阻塞队列

唤醒:从阻塞队列中移出,阻塞变就绪状态,PCB插入就绪队列

Block 和 Wakeup 要成对出现

进程挂起与激活

挂起:活动状态 → \rightarrow → 静止状态

激活:静止状态 → \rightarrow → 活动状态

Suspend 和 Active

2.4 进程通信

低级通信

①效率低 ②通信对用户不透明

高级通信

①使用方便 ②高效地传送大量数据

高级通信机制可归结为4类: 共享存储器系统 管道通信系统 消息传递系统 客户机-服务器系统

高级通信实现方式: 直接通信 间接通信(信箱通信)

直接通信方式

①对称寻址方式 一对一 要指定发送和接收的名称

②非对称寻址方式 一对多,接收方的变量id可以是任意发送方的id

间接通信

发送和接收方之间多了个信箱中转站,信箱包括信箱头 (存标识符) 和信箱体 (存消息)

信箱的类型

①私用信箱,用户进程可为自己建立,并将其作为该进程的一部分;

②公用信箱,由OS创建,并提供给系统中的所有核准进程使用;

③共享信箱,由某进程创建,在创建时或创建后,须指明它是可共享的,以及共享进程(用户)的名字

2.5 线程的基本概念

省流:线程的进程的子集,一进程可由多线程组成

概念:进程是拥有资源的基本单位,线程作为调度和分派的基本单位

线程本身不拥有系统资源,仅有一点保证独立运行的资源

同一进程的多线程独立性明显低于多进程

线程控制块(TCB)

2.6 线程的实现

内核支持线程(KST)

kernel supported thread

为了对内核支持线程进行控制和管理,在内核空间也为每个内核支持线程设置了一个TCB

内核根据该TCB来感知某线程的存在,并对其加以控制。当前大多数OS都支持KST

缺点:需要切换用户态和内核态

用户级线程(ULT)

user level thread

在用户空间中实现的,与内核无关

缺点:一个线程阻塞时,同一进程内的线程都会阻塞(单线程,无多线程)

用户级线程:以进程为单位进行,平均分配给每个进程的CPU时间

内核支持线程:以线程为单位进行,平均分配给每个线程的CPU时间

ULT KST 组合方式

一对一 一用户线程映射到一内核线程

多对一 多用户线程映射到一内核线程

多对多 多用户线程映射到多内核线程 (用户线程数量 >= 内核线程)

标签:操作系统,通信,笔记,PCB,线程,内核,进程,第二章,标识符
From: https://blog.csdn.net/mydaily_/article/details/140186267

相关文章

  • 操作系统笔记分享(第三章 处理机的调度与死锁)
    文章目录介绍三、处理机的调度与死锁3.1处理机调度概述处理机调度层次高级调度中级调度低级调度进程调度的任务和方式处理机调度算法的目标3.2调度算法先来先服务(FCFS)短作业优先(SJF)抢占式非抢占式优先级(PR)高相应比优先调度算法(HRRN)时间片轮转(RR)多级队列多级反馈队......
  • 仅做笔记用:base64字符串转换为十六进制形式表示的二进制数据
    使用JavaScript实现一个函数,参数是一个base64的字符串,将这个字符串解析成二进制数据,并将这个二进制数据的每个字节以一个十六进制两位数表示出来,每个字节的十六进制两位数之间空一格,每行16个字节,返回整理好的十六进制形式。functionbase64ToHex(base64Str){//解析ba......
  • TypeScript笔记(一)
    一、TypeScript=Type+JavaScript  在JS基础上,为JS增加了类型支持。TS属于静态类型的编程语言,在编译期间做类型检查,可以在代码编写期间发现问题,减少调试时间。TS相比JS的优势:1、更早的发现错误,减少调试时间;2、代码提示;3、提升可维护性;4、ECMAScript;5、TS有类型推断......
  • FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
    ​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。SRS是一......
  • Open-TeleVision:增强机器人学习的沉浸式遥开源操作系统 (https://robot-tv.github.io/
      每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://......
  • 《Programming from the Ground Up》阅读笔记:p19-p48
    《ProgrammingfromtheGroundUp》学习第2天,p19-p48总结,总计30页。一、技术总结1.objectfilep20,Anobjectfileiscodethatisinthemachine'slanguage,buthasnotbeencompletelyputtogether。之前在很多地方都看到objectfile这个概念,但都没有看到起定义,这次......
  • 抓包工具--Charles使用笔记
    抓取APP接口的请求,查看请求和响应数据,可确定问题出现在前端还是后端;Charles下载个人笔记1、快速获取对应地址快速获取代理地址,可以按照下图方式去获取,电脑上如果有安装虚拟机IP地址会不同;需要快速定位到自己设备的IP地址时,可以直接查看,不用输入命令去查找;当然,iPhone设备......
  • nacos学习笔记之服务发现中心
    一.什么是服务发现在微服务中,服务的消费方需要调用服务的生产方,这样服务的消费方就需要知道服务的消费方的网络地址(ip+端口号)。二、流程上图中服务实例本身并不记录服务生产方的网络地址,所有服务实例内部都会包含服务发现客户端(例如springcloud中的ribbon)。(1)在每个服务启动......
  • 大学生的笔记本应该是怎么的样子
    最近呢因专业课程到MT实习,入职的时候发台办公笔记本,可以在Macbook和Surface之间选,本人之前从未使用过Macbook产品,为了体验一下,就选了Macbook而非Surface,在这里记录一下想法。本人之前的生产力工具:台式机:无笔记本:ROG幻152020(i7,RTX2060,16GB+1TB+扩1TB)手机:iPh......
  • 【论文笔记】UniST:通用预训练城市时空预测模型
    目录写在前面1.通用时空模型的挑战与能力特性2.构建通用时空模型UniST2.1大规模时空预训练2.2时空知识规则引导提示学习3.UniST的实验与分析3.1模型预测效果3.2其他实验分析写在前面文章标题:UniST:APrompt-EmpoweredUniversalModelforUrbanSpatio-Te......