操作系统笔记

news2024/11/24 7:28:36

文章目录

  • 一、操作系统的定义
    • 1.1 操作系统的功能和目标
    • 1.2 操作系统的特征
    • 1.3 操作系统的发展和分类
    • 1.4 操作系统的运行机制
    • 1.5 操作系统内核
    • 1.6 操作系统的体系结构
  • 二、中断机制
    • 中断和异常
  • 三、系统调用
    • 3.1 系统调用的分类(按功能分配)
    • 3.2 系统调用和库函数(高级语言)的区别
    • 3.3 系统调用的背后过程
  • 四、进程
    • 4.1 进程的来源
    • 4.2 进程的定义
    • 4.3 进程的组成
    • 4.4 进程控制块的组织方式
    • 4.5 进程的特征
    • 4.6 进程的状态与转换
      • 4.6.1 进程的状态
      • 4.6.2 进程状态的转换
    • 4.7 进程控制
      • 4.7.1 原语
      • 4.7.2 进程控制相关的原语

一、操作系统的定义

操作系统(Opeating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
在这里插入图片描述

1.1 操作系统的功能和目标

在这里插入图片描述

1.2 操作系统的特征

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eZUijXYW-1668934504706)(/Users/zhangni/Documents/操作系统的特征.jpeg)]

重要考点:

  • 理解并发和并行的区别
  • 并发和共享互为存在条件
  • 没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征。

1.3 操作系统的发展和分类

  • 手工操作阶段
  • 批处理系统
    • 单道批处理系统(引入脱机输入输出技术)
      • 优点:缓解人机速度矛盾
      • 缺点:资源利用率依然很低
    • 多道批处理系统(操作系统开始出现)
      • 优点:多道程序并发执行,资源利用率高
      • 缺点:不提供人机交互功能
  • 分时操作系统
    • 优点:提供人机交互功能
    • 缺点:不能优先处理紧急任务
  • 实时操作系统
    • 硬实时系统
      • 必须在绝对严格的规定时间内完成处理
    • 软实时系统
      • 能接受偶尔违反规定时间
    • 优点:能优先处理紧急任务
  • 网络操作系统
  • 分布式操作系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJ1rUphu-1668934504707)(/Users/zhangni/Documents/操作系统的发展和分类.jpeg)]

1.4 操作系统的运行机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-axNgcNpc-1668934504708)(/Users/zhangni/Library/Application Support/typora-user-images/image-20221111143148875.png)]

最常考知识点:

  1. 特权指令只能在核心态下执行
  2. 内核程序只能在核心态下执行
  3. 核心态、用户之间的切换

1.5 操作系统内核

在这里插入图片描述

1.6 操作系统的体系结构

在这里插入图片描述

二、中断机制

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理
  • 发生中断,意味着?

    就意味着需要操作系统介入,开展管理工作,由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

  • 用户态和核心态之间的切换是怎么实现的?
    答:“用户态->核心态”是通过中断实现的。并且中断是唯一途径。
    核心态->用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标识位设置为“用户态”。

中断和异常

在这里插入图片描述

三、系统调用

目的:为了避免各个进程随意使用系统资源,用户进程想要使用共享资源只能通过系统调用像操作系统发出请求。操作系统对哥哥请求协调处理。

3.1 系统调用的分类(按功能分配)

凡是与资源相关的操作、会直接影响到其他进程的操作一定需要操作系统介入,即需要通过操作系统调用来实现。

在这里插入图片描述

3.2 系统调用和库函数(高级语言)的区别

  • 系统调用是操作系统向上层提供的接口
  • 有的库函数式对系统调用的进一步封装
  • 当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用

3.3 系统调用的背后过程

  1. 传递系统调用参数
  2. 执行陷入指令(用户态)
  3. 执行系统调用相应服务程序(核心态)
  4. 返回用户程序

注意:
陷入指令(trap、interrupt)

  1. 陷入指令是在用户态执行,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态
  2. 发出系统调用请求是在用户态,而对系统调用的相应处理核心态下进行。
  3. 陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令。

四、进程

4.1 进程的来源

​ 在多道程序环境下,程序的执行属于并发执行,此时失去了一个程序执行的封闭性,并具有间断性,以及其运行结果不可再现性的特征。这样程序的运行失去了意义,因此为了让程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了“进程“的概念。也就是将程序再细分出进程。

4.2 进程的定义

定义:进程是程序的一次执行过程(进程实体的运行过程),是系统进行资源分配和调度的独立单位。(引入线程前的说法)

操作系统利用一个专门的数据结构PCB来描述进程的基本情况和活动,程序段+数据段+PCB=进程实体(进程映像)

  • 一般情况下,把进程实体简称为进程。所谓创建进程,实质上是创建进程实体中的PCB撤销进程,实质上是撤销进程实体中的PCB⚠️PCB是进程存在的唯一标志

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

4.3 进程的组成

进程(进程实体)=程序段+数据段+PCB(进程控制块,Process Control Block)

操作系统通过PCB来管理进程,PCB中包含操作系统对其进行管理所需的各种信息。

在这里插入图片描述

4.4 进程控制块的组织方式

一个系统中有许多PCB,那么如何对他们进行有效的管理,用什么适当的方式将这些PCB组织起来。

  1. 线性方式
    1. 将系统中所有的PCB组织在一张线性表中
    2. 线性表的首地址存放在内存中的一个专用区域
  2. 链接方式
    1. 按照进程状态将PCB分为多个队列
    2. 操作系统持有指向各个队列的指针
  3. 索引方式
    1. 根据进程状态的不同,建立几张索引表
    2. 操作系统持有指向各个索引表的指针

链接方式示意图:
在这里插入图片描述

4.5 进程的特征

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

4.6 进程的状态与转换

4.6.1 进程的状态

三种基本状态

  1. 运行态——占有CPU,并在CPU上运行
  2. 就绪态——已具备运行条件,但由于没有空闲CPU,而暂时不能运行
  3. 阻塞态(等待态)——因等待某一事件而暂时不能运行

另外两种状态

  1. 创建态——进程正在被创建,操作系统为进程分配资源、初始化PCB
  2. 终止态——进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

4.6.2 进程状态的转换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9NHMAikY-1668934504712)(/Users/zhangni/Downloads/IMG_1D6773AB8B1E-1.jpeg)]

4.7 进程控制

进程控制就是实现进程状态的转换。进程控制用的程序段是由原语实现的。

4.7.1 原语

原语的特点是执行期间不允许中断,是一个不可分割的基本单位,它是采用“关中断指令”和“开中断指令”实现的,以此达到不可分割的特性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dAquPm97-1668934504712)(/Users/zhangni/Library/Application Support/typora-user-images/image-20221112193308739.png)]

4.7.2 进程控制相关的原语

无论哪个原语都要做三件事:

  1. 更新PCB中的信息,如修改进程状态标志,将运行环境保存到PCB、从PCB恢复运行环境。
  2. 将PCB插入合适的队列
  3. 分配/回收资源
  • 创建原语

    无–>创建态–>就绪态

  • 撤销原语

    进程终止:就绪态/阻塞态/运行态–>终止态–>无

  • 阻塞原语

    运行态–>阻塞态

  • 唤醒原语

    阻塞态–>就绪态,与阻塞原语成对出现

  • 切换原语

    运行态–>阻塞态/就绪态,就绪态–>运行态

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

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

相关文章

整夜我的背影是一条踏往星空的道路

Brigit Pegeen Kelly,1951 - 2016.08.14,美国诗人、教师,在加利福尼亚州帕洛阿尔托出生,在印第安纳南部长达,成年后的大部分时间都在伊利诺州中部度过。一位非常注重隐私的女性,她的生活很少为人所知。[1][…

计算机基础学习(好文必看)

好长时间没发文章了,主要是以输入为主。 那么,给小伙伴们推荐一些计算机基础学习的知识,自己感觉挺不错的。 计算机基础学习: 1. 小林师傅是一位宝藏博主,非常厉害,各大平台都有他的文章,我是…

Day08--自定义组件的样式

提纲挈领: ************************************************************************************************************ 我的操作: 1》在app.wxss里面定义一个全局样式: 2》在home.wxml里面使用全局样式。 3》在test2.wxml里面使用…

Prometheus系列(一)安装

1 安装 Prometheus Server 官网:https://prometheus.io/ 下载:https://prometheus.io/download/ 手册:https://prometheus.io/docs/introduction/overview/ Prometheus 基于 Golang 编写,编译后的软件包,不依赖于任何的…

如何画业务流程图?

业务流程图是用来描述客户业务作业方式的有效手段,它可以清晰地客户业务流程中涉及的人员角色、业务活动、业务数据以及他们之间的关系,是用来澄清需求的有效手段。一个典型的业务流程图如下图所示: 在画业务流程图时有哪些注意事项呢&#x…

分布式协调服务

服务越来越对,人工管理和维护服务及地址的配置地址信息会越来越困难,单点故障的问题也凸显出来。一旦服务路由或者负载均衡服务器宕机,依赖他的所有服务均将失效。 什么是 zookeeper? zookeeper 是一个开源的分布式协调服务。zoo…

【乱码】记一次C#调用Java乱码

项目是使用 C# 写的,传输数据使用对方给的Java加密解密算法。直接使用C#写算法要研究对方的算法,耗时较长。 因此直接将jar包转成dll进行调用。 前言 使用IKVM工具将Java生成的Jar包转成dll,使用C#进行调用,可以正常调用&#xff…

Java-10接口与抽象类

Java-10接口与抽象类 抽象方法 abstract method机制 这是一个不完整的方法,它只有一个声明,没有方法体 abstract void f();包含抽象方法的类被称为抽象类:如果一个类包含一个或多个抽象方法,则该类必须被定义为抽象类 public…

CEAC 之《企业信息化管理》3

👨‍💻个人主页:微微的猪食小窝 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 微微的猪食小窝 原创 收录于专栏 【CEAC证书】 1综合布线属于系统集成的____________。 A、网络应用系统 B、应用基础平台 C、网络平台 D、…

JavaEE 几种spring注解

使用注解可以更简单的存储Bean对象和读取Bean对象。 存储Bean对象 在使用注解之前&#xff0c;需要做一些前置工作&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"…

01- mysql基础

MySQL基础 今日目标&#xff1a; 完成MySQL的安装及登陆基本操作能通过SQL对数据库进行CRUD能通过SQL对表进行CRUD能通过SQL对数据进行CRUD 1&#xff0c;数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会…

Dendro Azide-PEG-Dendro Azide,Dendro N3-PEG-Dendro N3,PEG超支化树状叠氮

1、名称 英文&#xff1a;Dendro Azide-PEG-Dendro Azide&#xff0c;Dendro N3-PEG-Dendro N3 中文&#xff1a;聚乙二醇-超支化树状叠氮 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Azide PEG 4、分子量&#xff1a;可定制&#xff0c;Dendro Azide-PEG 20K-Den…

【暴力更换OPPO启动器为其它三方(Nova Launcher in my Case Scenario)】

狠搞更换OPPO启动器为三方&#xff08;Nova&#xff09; 我咋就不知道狮子座也有这么强烈的强迫症呢&#xff1f;&#xff01; 我每次玩儿新手机必须得搞搞应用图标呀壁纸呀啥的&#xff0c;必须得打上你“磊哥”的风格烙印。但是国内的启动器的通病就是用不了三方的app图标包…

针对小程序的漏洞挖掘

0x00 前言 我们对小程序的漏洞挖掘&#xff0c;关注点还是在逻辑漏洞上面&#xff0c;下面将从环境搭建到实例一步步讲解。&#xff08;此篇文章更适合做安服的老哥们看&#xff09; 0x01 环境配置 工具&#xff1a;BurpFiddlerwindows版本微信 注: 你也可以直接用burpwindo…

面试笔试题之Linux部分58题(第一部分)

1、Linux常用的发行版 debian、Fedora、Ubuntu、redhat、centOS 等补充&#xff1a; Fedora&#xff1a;软件新&#xff0c;不稳定 redhat&#xff1a;稳定、收费 centOS&#xff1a;稳定、免费 2、在Linux里面查看指定时间段的日志文件 sed -n‘/起始时间/,/结束时间/p’ 日…

一篇文章入门知识图谱

文章目录知识图谱一、为什么需要知识图谱&#xff1f;什么是知识图谱&#xff1f;——KG的前世今生1、看到的不仅仅是字符串2、知识图谱的前世今生二、语义网络&#xff0c;语义网&#xff0c;链接数据和知识图谱1、语义网络&#xff08;Semantic Network&#xff09;2、语义网…

Python编程 元组中不允许的操作

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.元组知识点 1.元组中不允许的操作(熟悉) 2.元组与列表之间的转换(掌握…

echarts5.0引入地图,背景渐变色,航线图,地图阴影

效果图如下&#xff0c;文章末尾附全部代码&#xff1a; 参考&#xff1a; 1、航线图 Vue Echarts飞机航线图_Kinghiee的博客-CSDN博客 2、地图阴影 echarts中国地图实现阴影效果&自定义设置_K.P的博客-CSDN博客 版本&#xff1a; "echarts": "^5.1.2&q…

面向OLAP的列式存储DBMS-9-[ClickHouse]的常用日期时间操作

ClickHouse 日期时间的相关操作函数 1 日期时间操作函数 1.1 toDate和toDateTime toDate、toDateTime&#xff1a;将字符串转成 Date、DateTime 一、传入字符串 SELECT toDate(2020-11-11 12:12:12) v1, toDateTime(2020-11-11 12:12:12) v2; /* ┌─────────v1─…

内聚力模型

背景介绍 材料中不可避免的具有各种缺陷&#xff0c;引起工程中结构断裂的发生。针对裂纹扩展相关问题&#xff0c;研究学者基于线弹性断裂力学&#xff0c;通过理论或数值手段得到裂纹尖端的应力强度因子KI、KII 和 KIII 以及应变能释放率GI、GII 和 GIII&#xff0c;对裂纹的…