操作系统期末复习笔记(持续更新..)

news2024/9/28 23:28:37

一、操作系统的基本概念

1.1 操作系统概念

控制和管理整个计算机系统的硬件与软件资源。合理地组织、调度计算机的工作与资源。为用户和其他软件提供方便接口与环境的程序集合。

1.2 操作系统的特征

特征:并发,共享,虚拟,异步

并发:两个或多个事件在同一时间间隔内发生。使得系统具有处理和调度多个程序同时执行的能力。操作系统的并发是通过分时实现的。注意:并发是指在一个时间段,并行是指在同一个时段。并行是指系统具有同时执行或操作(硬件支持:多流水线或者多处理机)。对于单机处理来说,并行宏观上程序是同时在运行的,微观上程序是交替执行的,多道程序轮流占有CPU,交替执行。

重要考点:单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。

共享:互斥共享方式。例如打印机、磁带,同一时刻只能供一个进程对资源进行访问这种资源称作:临界资源或者独占资源。

同时访问方式:一段时间内允许多个进程对资源进行访问。典型代表:磁盘设备,重入码编写的文件。

虚拟:一个物理上的实体变为若干逻辑上的对应物,这种技术被称为虚拟技术。虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器。时分复用技术。

虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器用量。空分复用技术。

也可以将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备。

异步:多道程序走走停停,进程以不可预知的速度向前进。

1.3 操作系统的运行环境

程序运行:程序运行的过程是执行CPU一条条的机器指令的过程。

操作系统的运行机制:

CPU执行的两种性质程序,操作系统内核程序,用户自编程序。

内核:

时钟管理:操作系统为用户提供标准时间,根据时钟对进程进行管理,实现进程切换。

中断机制:初衷是为了提高多道程序运行环境中的CPU利用率。保护和回复中断线程的信息,转移控制权到相关程序。

原语:处于系统的最底层,最接近硬件。运行具有原子性,只能一气呵成。系统控制的数据结构及处理。

中断与异常:

为了进行核心态和用户态两种状态的切换,引入了中断机制。核心态可以执行用户态无法执行的特权指令。访管指令是在用户态使用,将用户态转换为核心态,所以访管指令不是特权指令。

中断是让操作系统内核夺回CPU使用权的唯一途径。

中断(外中断):来自于CPU指令之外的事件发生。I/O中断:输入输出已经完成。时钟中断:固定时间片已到,让处理机处理。

异常(内中断):源自于CPU执行指令内部的事件。非法操作码,除零,地址越界,算术溢出。陷入指令:用户自行设置,执行陷入后,用户态转换为核心态。异常不能被屏蔽。

系统调用:用户在程序中调用操作系统提供的一些子功能。设备功能:完成设备的请求或者释放,设备启动等功能。文件管理:完成文件的读、写、创建以及删除功能。进程控制:完成进程的创建、撤销、阻塞以及唤醒功能。进程通信:完成进程之间的消息传递和信号传递功能。内存管理:完成内存的分配、回收以及获取作业占有内存区大小及始址等功能。

用户态与内核态:处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令。

处于用户态时,说明此时正在执行的时应用程序,此时只能运行非特权指令。

cpu中有一个寄存器叫程序状态字寄存器(psw),其中有个二进制位,1表示内核态,0表示用户态。

别名:内核态=核心态=管态。用户态=目态。

内核态->用户态。执行一条特权指令——修改psw的标志位为用户态,意味着操作系统主动让出CPU使用权。

用户态->内核态。由中断引发,硬件自动完成变态过程,触发中断信号意味着操作系统强行夺回CPU使用权。

1.4 大内核与微内核

大内核:将操作系统的主要功能模块进行集中,从而用以提供高性能的系统服务。优点:各个管理模块间共享信息,能够有效利用相互间的有效特性,有巨大性能优势。缺点:层次交互关系复杂,层次接口难定义,层次间界限模糊。

微内核:计算机体系结构发展,操作系统提供服务越来越多,接口形式越来越复杂。将内核中最基本的功能保留在内核,将不需要在核心态执行的功能转移到用户态执行,降低内核设计的复杂性。优点:有效分离内核与服务、服务与服务、使得它们间的接口更清晰,维护代价大大降低。各部分可以独立的优化和演进。缺点:性能问题,需要频繁的在用户态和内核态之间切换。

二、进程

2.1 进程的概念和特征

进程的概念:

进程是程序一次执行过程。进程是一次程序及其数据在处理机上顺序执行时发生的活动。进程时具有独立功能的程序在一个数据集合上运行的过程,是资源分配和调度的独立单位。是为了更好描述和控制程序的并发执行,实现操作系统的并发性和共享性。

进程控制块PCB:为了更好的描述进程的基本情况和运行状态,进而控制和管理进程。PCB是进程存在的唯一标志。

进程的特征:

动态性、并发性、独立性、异步性、结构性。

动态性:进程具有生命周期,有创建、活动、暂停、终止等过程。

并发性:多个进程同时存在于内存中,使得程序与程序之间可以并发执行。

独立性:进程能独立获得资源和接受调度。

异步性:进程相互制约,以不可预知的速度向前推进。操作系统中配置有相应的进程同步机制。

结构性:每个进程都配置一个PCB用于描述。

2.2 进程的状态与转换

状态:创建态、就绪态、运行态、阻塞态、结束态。

创建态:进程正在被创建,尚未进入就绪态。

就绪态:进程已处于准备运行状态。

运行态:进程在处理机上运行。

阻塞态:又称等待态,进程正在等待某个时间而暂停运行。

结束态:进程正在从系统中消失(正常结束或异常终止)

相互转换:

就绪态->运行态:处于就绪态的进程获得处理机进入运行态。

运行态->就绪态:处于运行态的进程时间片用完后,让出处理机进入就绪态。

运行态->阻塞态:进程请求除处理机外的其他资源,此时运行态进入阻塞态。

阻塞态->就绪态:进程获得所等待的资源,如IO资源,或中断结束。

2.3 进程控制

进程的创建:

分配进程标识号,申请PCB(PCB有限)。为进程分配资源,为程序和数据以及用户栈分配必要的内存空间。初始化PCB,包括初始化标志信息、初始化处理机状态信息、初始化处理机控制信息、设置进程的优先级。若进程就绪队列可以接纳新进程,进程就进入就绪态。

进程的终止:

结束分类:正常结束:进程的任务已经完成并且准备退出运行。异常结束:进程正在运行,出现了某些异常事件,导致程序无法继续运行。外界干预:进程应外界请求终止运行。

结束过程:根据被终止进程的标识符,检索PCB,读取进程状态。若进程处于运行态,终止运行,剥夺处理机。终止进程之下的子进程。该进程拥有的全部资源还给父进程或者操作系统。将PCB从队列中删除。

进程的阻塞和唤醒:

阻塞原语执行过程:找到要被阻塞进程标识号对应的PCB。若该进程处于运行态,保护其现场,将其状态转换为阻塞态,停止运行。将PCB插入相应时间的等待队列。

唤醒原语的执行过程:找到等待队列中进程相应的PCB。将其从等待队列中移除,置其状态为就绪态。将PCB插入就绪队列,等待调度程序调度。

进程切换:

进程切换是在内核态下完成的。

过程:保存处理机上下文,包括程序计数器和其它寄存器。更新PCB信息。把进程的PCB移入相应的队列,如就绪、阻塞等队列。选择另一个进程执行,更新其PCB。更新内存管理的数据结构。恢复处理机上下文。

进程的组织:

进程是一个独立的运行单位,也是操作系统进行资源分配和调度的基本单位,由以下三部分组成:

进程控制块:

进程描述信息:进程标识符:标志进程。用户标识符:标识进程归属的用户,主要为了共享和保护服务。

进程控制和管理信息:进程当前状态:描述进程状态信息。进程优先级:描述进程抢占处理机的优先级。代码运行入口地址。程序外存地址。进入内存时间。处理机占用时间。信号量使用。

资源分配清单:

用以说明有关内存地址空间或者虚拟地址空间状况,所打开的文件的列表和所使用的输入/输出设备信息。代码段指针、数据段指针、堆栈段指针、文件描述符、键盘、鼠标。

处理机相关信息:

处理机中各寄存器的值。通用寄存器,地址寄存器,控制寄存器,标志寄存器值,状态字。

程序段:能被进程调度程序调度到CPU执行的程序代码段。

数据段:进程对应的程序加工处理的原始数据或者程序执行时产生的中间或最终结果。

进程的组织方式:

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

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

2.4 进程的通信

共享存储:通信进程之间存在一块可以被直接访问的共享空间。

低级方式:基于数据结构共享。

高级方式:基于存储区共享。

消息传递:进程间的数据交换是已格式化的消息为单位的,进程通过系统提供的发送消息和接收消息的两个原语进行数据交换。

直接通信方式:发送进程直接发消息给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中取得消息。

间接通信方式:发送进程把消息发给某个中间实体,接收进程从中间实体获得消息。

通道通信:发送进程以字符流形式将大量数据送入写管道,接收进程从管道中接收数据。当管道写满时,写进程的write()系统调用将被阻塞,等待读进程将数据取走。当读进程将数据全部取走后,管道变空,此时读进程的read()系统调用将被阻塞。

通道通信是半双工通信,不可以同时读和写。要求互斥和同步,确定对方存在。

三、线程

线程的基本概念:

减少程序在并发执行时付出的时空开销,提高操作系统的并发性能。

引入线程后,进程只作为系统资源的分配单元,线程作为处理机的分配单元。

线程与进程的比较:

调度:进程是独立调度的基本单位,线程是资源的基本单位。不同线程切换回引起进程切换。

拥有资源:进程是资源分配的基本单位。

并发性:引入线程后,进程可以并发执行,多个线程间也可以并发执行,提高系统吞吐量。

系统开销:同一进程的线程切换要比进程切换开销小。

地址空间和其它资源:进程的地址空间相互独立,同一进程的各线程之间共享进程资源,某进程的线程对其它进程不可见。

通信方面:进程间通信需要进程同步和互斥手段的辅助,保证数据的一致性。线程间可以直接读/写进程程序段来通信。

线程属性:不拥有系统资源,拥有唯一标识符和线程控制块。不同线程可以执行相同的程序,同一服务程序被不同用户调用时,操作系统为其创建不同线程。同一进程的线程共享该进程全部资源。线程时处理机的独立调度单位。线程也有生命周期,如阻塞、就绪、、运行等状态。多CPU计算机中,各个线程可占用不同的CPU。每个线程都有一个线程ID、线程控制块(TCB)。切换同进程中的线程开销小,切换进程开销大。由于共享内存地址空间,同一进程中的线程间通信甚至无需系统干预。

(持续更新中...)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1363651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日算法打卡:数的三次方根 day 7

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码 原题链接 790. 数的三次方根 题目难度:简单 题目描述 给定一个浮点数 n,求它的三次方根。 输入格式 共一行,包含一个浮…

如何将手机中termux用电脑的vnc显示

在电脑中我们同样需要下载 vnc 这里填写手机上的 IP:端口号 我的是 10.11.166.219:5902 下面填名字然后 手机端 输入sshd开始ssh这边就可以连接啦

【ARM 处理器】程序存储详解

本篇文章主要介绍ARM处理器,Code, RO-data,RW-data,ZI-data 知识以及程序存储情况 目录 1. 专业词汇2. 程序存储3. 程序空间计算 1. 专业词汇 Code : 代码区,存储在 ROM 区域RO-data:Read Only data,即只读数据域&…

2024年虚拟DOM技术将何去何从?

从诞生之初谈起,从命令式到声明式,Web开发的演变之路 Web开发的起源与jQuery的统治 在Web开发的早期阶段,操作DOM元素主要依赖命令式编程。当时,jQuery因其易用性而广受欢迎。使用jQuery,开发者通过具体的命令操作DOM&…

qt自定义控件的封装

刚学了一个很有意思的东西,前面学了list,Tree,Table三大控件和一部分常用基础控件,但感觉没啥意思,就是用别人的直接用,刚学了一个自定义控件的封装,流程如下: 想把两个不相关的组件封装在一块,直接用ui不行,所以先新添加了qt设计师页面,新添加了一个SmallWidget *ui 在smal…

FCN-8s源码理解

FCN网络用于对图像进行分割,由于是全卷积网络,所以对输入图像的分辨率没有要求。本文重点对fcn8s.py中图像降采样和上采样后图像分辨率的变换进行理解。 相关知识 为准确理解图像分辨率的变换,对网络结构中影响图像分辨率变换的几个函数进行…

Linux基础命令@echo、tail、重定向符

目录 echo概念语法作用演示一演示二 反引号作用 tail概念语法作用不带选项,演示一带选项 -num,演示二带选项 -f , 持续跟踪 重定向符概念作用覆盖重定向,>演示一演示二 追加重定向,>>演示一演示二 总结 echo …

腾讯云取消免费10G CDN流量包:免费CDN时代结束

关注卢松松,会经常给你分享一些我的经验和观点。 免费送了7-8年的腾讯云10G免费流量包,从2024年开始,停止赠送了!自此,国内绝大多数互联网大厂的CDN都开收费了! 大概从2016年开始,腾讯云为了抢夺CDN客户&#xff0…

CentOS使用docker安装mysql并使用navicat 远程链接

这篇文章没用开启mysql的挂载功能,如果想开启的话可以和我的下篇文章结合着看。 CentOS中开启mysql挂载-CSDN博客 docker在之前的文章中已经安装完成了 这里输入命令查询已被上传的MySQL镜像 docker search mysql这里stars代表点赞数,official代表官…

瓢虫目标检测数据集VOC格式400张

瓢虫,一种小巧玲珑、色彩鲜艳的昆虫,因其独特的形态和生态习性而受到广泛欢迎。 瓢虫的体型小巧,一般为圆球形,体色鲜艳,有红、黄、黑等多种颜色。它们通常有一个坚硬的外壳,可以保护自己不受天敌的侵害。…

一文讲透使用SPSS统计分析软件绘制双轴线图

双轴线图主要用来展示两个因变量和一个自变量的关系,并且两个因变量的数值单位不同时的情形。具体来说,双轴线图是指在一幅图上有一个横轴和两个纵轴,适用于三个变量。两个纵轴分别表示一个变量,横轴变量同时适用于两个纵轴上的变…

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【LeetCode每日一题】383. 赎金信(计数模拟)

2024-1-7 文章目录 [383. 赎金信](https://leetcode.cn/problems/ransom-note/)思路:计数模拟 383. 赎金信 思路:计数模拟 1.通过数组对字母进行计数 2.magazine 中的每个字符只能在 ransomNote 中使用一次。 3.判断减一后,是否小于等于0。…

VS2019出现按F12或Ctrl+鼠标左键跳转到函数位置不准的解决

程序有时会出现大部分函数都不能准确的从头文件中正确定位到函数定位,这是因为数据库错乱造成的,可以通过重构数据库来解决,操作方法如下: 1、菜单栏:工具——选项 2、在打开选项对话框左边的树形框中选择C——高级: 3、然后在右边的浏览/导…

如何找到 niche 出海细分市场的 IDEA

先说结论就是:看榜单 Why:为什么看榜单? 大家会问为什么?原因很简单: 熟读唐诗三百首,不会作诗也会吟不天天看榜单上相关的优秀同行,你想干啥 心法就是下苦功夫坚持,量变引起质变…

微信小程序 获取地址信息(uniapp)

参考API地址&#xff1a;微信小程序JavaScript SDK | 腾讯位置服务 <script> // 引入SDK核心类&#xff0c;js文件根据自己业务&#xff0c;位置可自行放置var QQMapWX require(../../js/uploadImg/qqmap-wx-jssdk.js);export default {data(){return{qqmapsdk:}},onL…

[VUE]2-vue的基本使用

目录 vue基本使用方式 1、vue 组件 2、文本插值 3、属性绑定 4、事件绑定 5、双向绑定 6、条件渲染 7、axios 8、⭐跨域问题 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅…

RabbitMQ(八)消息的序列化

目录 一、为什么需要消息序列化&#xff1f;二、常用的消息序列化方式1&#xff09;Java原生序列化&#xff08;默认&#xff09;2&#xff09;JSON格式3&#xff09;Protobuf 格式4&#xff09;Avro 格式5&#xff09;MessagePack 格式 三、总结 RabbitMQ 是一个强大的消息中间…

Java 11中的新字符串APIs详解

第1章 引言 大家好&#xff0c;我是小黑&#xff0c;咱们都知道&#xff0c;Java作为一种广泛使用的编程语言&#xff0c;每一次更新都会带来不少新鲜事物。而Java 11&#xff0c;作为长期支持&#xff08;LTS&#xff09;版本之一&#xff0c;更是引起了广大开发者的关注。好…

数据结构期末复习

章节知识点分析 第一章绪论 基本概念 数据 数据元素&#xff08;记录、表目&#xff0c;是数据集合中一个个体&#xff09; 数据项&#xff1a;一个数据元素可由若干数据项组成 数据对象&#xff1a;性质相同的数据元素的集合&#xff0c;是数据的一个子集 数据结构&…