恶补《操作系统》2_1——王道学习笔记

2024-04-24 00:04

本文主要是介绍恶补《操作系统》2_1——王道学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2操作系统-进程

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

组成:PCB(进程存在唯一的标志),程序段,数据段

组织方式:链接方式,指针指向不同的队列;索引方式,索引表

特征:动态性、并发性、独立性、异步性、结构性

2.1_2 进程的状态与转换

1)状态:

  1. 运行状态:占有CPU,并在CPU上运行,单核只能一个进程(双核两个)(CPU√,其它资源
  2. 就绪状态:已经具备运行条件,但是没有空闲的CPU,暂时不能运行(CPUX,其它资源
  3. 阻塞状态:等在某个事件的发生,暂时不能运行(CPUX,其它资源X
  4. 创建状态:创建PCB,程序段,数据段
  5. 终止状态:回收内存,程序段,数据段,撤销PCB

2)进程状态间的转换(图,且只能这样转化)

  1. 创建态->就绪态
  2. 就绪态->运行态
  3. 运行态->就绪态
  4. 运行态->中止态(比如数组越界)
  5. 运行态->阻塞态(主动)
  6. 阻塞态->就绪态(被动)

2.1_3 进程控制

1 基本概念:

  1. 什么是进程控制?

答:实现各种进程状态转换。

  1. 为什么进程控制要一气呵成?

答:就绪和堵塞是两个队列指针,转换状态时要至少进行两个操作才能完成,如果中途中断,会导致信息不一致。

  1. 如何实现进程控制?

答:用原语实现一气呵成,因为原语可以用“关中断指令”,就不会检查是否有中断指令了,自然是一气呵成的执行下去。

  1. 原语做的事情:
    1. 更新PCD中的信息
    2. PCD插入合适的队列
    3. 分配/回收资源

2 进程控制相关的原语

1)进程的创建:

  1. 创建原语:申请空白PCB、为新进程分配所需资源、初始化PCB、将PCB插入就绪队列
  2. 引起进程创建的事件:用户登录、作业调度、提供服务、应用请求

2)进程的终止:

  1. 撤销原语:终止进程,删除PCB
  2. 引起进程中止的事件:正常结束、异常结束、外界干预

3)进程的阻塞:

  1. 阻塞原语:运行态->阻塞态
  2. 引起进程阻塞的事件:需要等待系统分配某种资源、需要等待相互合作的其他进程完成工作

4)进程的唤醒:

  1. 唤醒原语:阻塞态->就绪态
  2. 引起进程唤醒的事件:等待的事件发生

5)进程的切换

  1. 切换原语:更新PCB
  2. 引起进程切换的事件:当前进程事件片到、有更高优先级的进程到达、当前进程主动阻塞、当前进程终止

2.1_4 进程通信(IPC)

概念:两个进程之间的数据交互,如软件之间的一键分享

1、共享存储 (分配共享空间,且互斥(PV操作)

  1. 基于数据结构的共享:固定分配(低级通信)
  2. 基于存储区的共享:划分存储区(高级通信),不管你具体怎么用这个存储区

2、消息传递

数据交换以格式化的消息为单位,格式化的消息=消息头+消息体

  1. 直接通信方式(直接点名发给谁,消息直接挂载到接受队列)
  2. 间接通信方式(间接利用信箱(中间人)发送消息)

3、管道通信(pipe

    1. 管道/共享文件/内存缓冲区/循环队列
    2. 只能实现半双工通信
    3. 互斥地访问(没写满,不能读,反之同理)
    4. 写满/读空——堵塞

2.1_5 线程概念

  1. 什么是线程,为什么要引入线程?

答:线程是一个基本的CPU执行单元,也是程序执行流的最小单位,进一步提高了系统的并发度

  1. 引入线程机制后,有什么变化?

  1. 资源分配、调度:进程是资源分配的基本单位,线程是调度的基本单位
  2. 并发性:各线程间也能并发,提升了并发度
  3. 系统开销:可以只在进程中切换,减小了CPU切换环境的系统开销
  1. 线程有哪些重要的属性?
  1. 线程是处理机调度的基本单位
  2. CPU计算机中,各个线程可占用不同的CPU
  3. 每个线程都有一个线程ID、线程控制块(TCB
  4. 线程也有就绪、阻塞、运行三种基本状态
  5. 线程几乎不拥有系统资源(系统资源都在进程中)
  6. 同一进程的不同线程间共享进程的资源
  7. 由于共享内存地址空间,同一进程中的线程间通信甚至无需系统干预
  8. 同一进程中的线程切换,不会引起进程切换
  9. 不同进程中的线程切换,会引起进程切换
  10. 切换同进程内的线程,系统开销很小
  11. 切换进程,系统开销较大

2.1_6线程的实现方式和多线程模型

1、线程的实现方式

  1. 用户级线程(ULT):由应用管理,从用户的视角看能看到的线程。

优点:管理不用涉及到CPU转换态,故线程管理系统开销小效率高

缺点:当其中一个用户级被堵塞,其他都会被堵塞,进而整个进程都会被堵塞。

  1. 内核级线程(KLT):由操作系统管理,从操作系统内核视角看能看到的线程。内核级线程才是处理机分配的单位

2、多线程模型

  1. 多对一模型

nULT映射到1KLT

优点:开销小,效率高

缺点:容易阻塞,并发度不高

  1. 一对一模型

nULT映射到nKLT

优点:并发能力很强

缺点:占用成本高,开销大

  1. 多对多模型

nULT映射到mKLT上(n>=m

中和以上两种优缺点

这篇关于恶补《操作系统》2_1——王道学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930243

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件