《王道》操作系统整理

news2024/12/23 17:16:47

操作系统

  • 第1章 OS概述
    • 第1节 OS基本概念
    • 第2节 OS发展与分类
    • 第3节 OS运行机制和体系结构
      • 1.3.1 操作系统的运行机制
        • 1. 时钟管理
        • 2. 中断机制
        • 3. 原语
        • 4. 系统资源管理或系统控制的数据结构及处理
      • 1.3.2 中断和异常
      • 1.3.3 系统调用
  • 第2章 进程管理
  • 第3章 内存管理
  • 第4章 文件管理
  • 第5章 IO管理

第1章 OS概述

第1节 OS基本概念

在这里插入图片描述
操作系统定义:控制管理计算机硬件、软件资源,合理组织调度计算机的工作和资源的分配,向用户和其他应用提供方便使用的接口和环境,是计算机系统中最基本的系统软件

操作系统功能和目标

  • 资源管理者:处理器管理(CPU管理,合理调度进程、线程)、存储器管理(内存管理)、文件管理(文件系统、磁盘管理)、其他设备管理(通过IO管理其他设备)
  • 作为用户和计算机硬件直接的接口
    • 命令接口
      • 联机命令(交互式)
      • 脱机命令(批处理)
    • 程序接口:一组系统调用,供程序使用
    • GUI:图形化界面
  • 扩充机器:覆盖了软件的机器称为扩充机器或虚拟机

操作系统的特征

  • 并发:多个事件在一段时间间隔内发生(并行,指多个事件在同一时刻发生)
  • 共享:即资源共享,系统资源供多个并发进程同时使用
    • 互斥共享:一段时间内,只允许一个进程访问资源
    • 同时访问:微观上可能是多个进程交替使用资源,也可能是确实是同时访问资源
  • 虚拟:没有并发,就不需要时分复用,因此也就没有虚拟特征
    • 时分复用:虚拟处理器技术,通过使用多道程序设计技术,让用户感觉每个程序都在独占处理器
    • 空分复用:虚拟存储器技术,从逻辑上扩充内存,例如 60G 的游戏运行在 4G 内存的电脑上
  • 异步:多个程序并发执行,由于资源有限,程序执行不是一贯到底,而是走走停停,以不可预知的速度推进。没有并发,显然也没有异步。

并发和共享互为依存条件:没有并发,就不需要资源共享;如果系统不能很好的资源共享,就可能导致无法并发。并发和共享是操作系统的基本特征

做题补充:

  • 广义指令:系统调用
  • 单道批处理系统,程序顺序执行;多道批处理系统,程序并发执行。
    • 顺序执行:顺序性、封闭性、可再现性
      • 顺序性:严格按照程序指令顺序执行
      • 封闭性:程序在封闭的环境下运行,独占全机资源,资源状态只有其可以改变
      • 可再现性:同一个环境下,可以得到相同的执行结果
    • 并发执行:断续性(间断性,资源共享,受到其他程序的制约)、失去封闭性(环境可以被其他程序修改)、不可再现性
  • 库函数,用来为程序提供编写好的功能,方便使用;系统调用,用来向系统请求服务。库函数可能会使用系统调用,使用系统调用会陷入内核,需要保存现场,导致程序执行变慢,当库函数不适用系统调用时,程序完全在用户空间执行,速度更快。

第2节 OS发展与分类

在这里插入图片描述

手工操作阶段
在这里插入图片描述

  • 用户独占全机,资源利用率低
  • 人工操作慢和处理器处理速度快,速度矛盾,导致资源利用率低

批处理阶段

单道批处理系统,引入脱机输入输出到高速的磁带,用监督程序(OS雏形)控制作业输入输出处理器。自动(一批程序正常情况可以自动执行)、顺序(按进入内存顺序执行)、单道(同一时刻内存只有一个程序)。

  • 优点:引入了高速磁带,一定程度缓解了人机速度差异
  • 缺点:内存中只能有一个程序执行,执行完一个,才能输入下一个,处理器仍然需要等待 IO 时间
    在这里插入图片描述
    多道批处理系统:操作系统正式诞生,引入了中断,OS 负责管理程序执行。多道(内存中有多个程序)、宏观并行、微观串行。
    在这里插入图片描述
  • 优点:多道程序并发执行,共享资源,资源利用率大幅提升,系统吞吐量增大
  • 缺点:没有人机交互功能,必须等到程序运行结束或者异常终止,用户响应时间长

分时操作系统:同时(多路,允许多个用户同时使用)、交互(人机交互)、独立(每个用户互不干扰,看不到别人)、及时(用户请求能在短时间内得到响应)

  • 优点:解决了人机交互
  • 缺点:不能处理紧急任务,完全公平,不区分任务优先级

实时操作系统:主要特点,及时、可靠。分为硬实时(严格遵守时限不能违反)、软实时(能够接受偶尔违反)

  • 优点:能够响应紧急任务

网络操作系统:实现网络中资源共享和各台计算机之间通信
分布式操作系统:分布性和并行性,若干计算机并行、协同完成任务。
个人操作系统、嵌入式系统、服务器系统、手机系统等。

做题补充:

  • 甘特图:横轴时间,纵轴程序,多种线段区分不同资源即可
  • CPU 利用率:CPU运行时间除以总时间

第3节 OS运行机制和体系结构

指令:不是代码,而是一个 CPU 可以执行的具体操作,是二进制的机器语言。

  • 特权指令:不允许用户执行直接使用的指令
  • 非特权指令

CPU状态:使用程序状态字寄存器(PSW)的某一位表示当前处理器处于什么状态。

  • 用户态(目态)
  • 核心态(管态)

两种程序

  • 内核程序:处于核心态,可以执行特权指令和非特权指令
  • 应用程序:用户态,只可以执行非特权指令

计算机层次结构:
在这里插入图片描述
内核包括:

  • 距离硬件最近的:时钟管理、中断处理、原语。
  • 系统资源管理:进程管理、存储器管理、设备管理等

1.3.1 操作系统的运行机制

1. 时钟管理

  • 时钟的第一功能是计时,向用户提供标准的系统时间。
  • 通过时钟中断,实现进程的切换。常用在一些和时间相关的调度中(分片、实时调度)

2. 中断机制

中断的初衷:提高多道程序运行环境中的 CPU 利用率,主要针对外设。
中断机制中只有一小部分属于内核(这部分负责保护现场,转移控制权到中断处理程序以及恢复现场)

3. 原语

原语特点:

  1. 处于操作系统最低层,是最近接硬件的部分
  2. 具有原子性,操作一气呵成,不可中断
  3. 运行时间一般较短,且被频繁调用

定义原语:通过关中断实现。

4. 系统资源管理或系统控制的数据结构及处理

  1. 进程管理:进程状态管理,进程调度和分派、创建、销毁进程控制块(PCB)
  2. 存储器管理:分配回收、代码对换等
  3. 设备管理:缓存区管理,设备分配与回收

1.3.2 中断和异常

中断:

  • 内中断(异常、陷入 trap)
    • 自愿中断(指令中断)
    • 强迫中断
      • 硬件故障
      • 软件中断
  • 外中断(强迫中断)
    • 外设请求
    • 人的干预

中断处理过程:

  1. 关中断 (硬件完成)
  2. 保存断点(硬件完成)
  3. 中断服务程序寻址(硬件完成)
  4. 保存现场和屏蔽字 (中断程序完成)
  5. 开中断(中断程序完成)
  6. 执行中断服务程序(中断程序完成)
  7. 关中断(中断程序完成)
  8. 恢复现场(中断程序完成)
  9. 开中断,中断返回(返回到保存的断点处)(中断程序完成)

1.3.3 系统调用

系统中各个资源由 OS 管理,用户程序中凡是与资源有关的操作,都必须通过系统调用向 OS 提出服务请求。 用户程序通过陷入指令来发起系统调用,请求 OS 提供服务。(用户态可以执行陷入指令,因此陷入指令非特权指令)

系统调用按功能分为以下几类:

  • 设备管理
  • 文件管理
  • 进程控制
  • 进程通信
  • 内存管理

用户态转向核心态的例子:

  1. 系统调用
  2. 中断
  3. 程序指令出现错误(除0,地址越界,算术溢出等)
  4. 用户程序企图执行特权指令(异常)

第2章 进程管理

第3章 内存管理

第4章 文件管理

第5章 IO管理

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

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

相关文章

【8】SCI易中期刊推荐——计算机 | 人工智能(中科院4区)

🚀🚀🚀NEW!!!SCI易中期刊推荐栏目来啦 ~ 📚🍀 SCI即《科学引文索引》(Science Citation Index, SCI),是1961年由美国科学信息研究所(Institute for Scientific Information, ISI)创办的文献检索工具,创始人是美国著名情报专家尤金加菲尔德(Eugene Garfield…

【SpringCloud11】Hystrix断路器

Hystrix断路器1.概述1.1分布式系统面临的问题1.2Hystrix 是什么1.3Hystrix 的作用1.4官网资料1.5Hystrix官宣停更进维2.Hystrix重要概念2.1服务降级(fallback)2.2服务熔断(break)2.3服务限流(flowlimit)3.H…

手把手教你使用Python实现推箱子小游戏(附完整源码)

文章目录项目介绍项目规则项目接口文档项目实现过程前置方法编写move核心方法编写项目收尾项目完善项目整体源码项目缺陷分析项目收获与反思项目介绍 我们这个项目是一个基于Python实现的推箱子小游戏,名叫Sokoban: 这个游戏的目的是让玩家&#xff0…

jfow-代码分析

jfow-代码分析目录概述需求:设计思路实现思路分析1.代码:2.代码2:3.CashFrmTemplate4.chartType5.DataColumnData:参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xf…

Vue实战第1章:学习和使用vue-router

学习和使用vue-router 前言 本篇在讲什么 简单讲解关于vue-router的使用 仅介绍简单的应用,仅供参考 本篇适合什么 适合初学Vue的小白 适合想要自己搭建网站的新手 适合没有接触过vue-router的前端程序 本篇需要什么 对Html和css语法有简单认知 对Vue有…

2023/1/14 js基础学习

1 js基础学习-基本数据类型基本语法 请参考 https://blog.csdn.net/m0_48964052?typeblog https://gitee.com/hongjilin/hongs-study-notes/blob/master/%E7%BC%96%E7%A8%8B_%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/HTMLCSSJS%E5%9F%BA%E…

Arthas 入门到实战(二)在线热更新

1. 结合 jad/mc 命令在线修改使用 jad 命令: 将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码,便于你理解业务逻辑; mc命令:Memory Compiler/内存编译器,编译.java文件生成.class。 redefine命令:加载…

unix进程控制及进程环境--自APUE

文章目录概述1、孤儿进程和僵尸进程进程终止进程的编译和启动进程终止的步骤进程8种终止方式进程退出函数1:exit进程退出函数2:_exit进程退出函数3:_Exit注册终止处理程序:atexit环境变量通过main函数传参全局的环境变量表&#x…

uni-app跨端自定义指令实现按钮权限

前言 初看这个标题可能很迷,uni-app明明不支持自定义指令,这文章是在搞笑吗,本文对于uni-app自定义指令实现按钮权限的方式也有可能是多余,但为了给业务部门更友好的开发体验,还是做了一些可能没意义的操作&#xff0…

回顾2022,展望 2023

个人相关: PMP 因为疫情多次延期的PMP终于搞定,光环的PMP就是妥妥。基本只要认真做题和思考都会过。但是考试不仅仅是考试,有时候更多的是对项目发展和项目管理的思考:风险,里程碑,相关方,敏捷&…

红日内网渗透靶场2

目录 环境搭建: Web渗透: weblogic漏洞利用 java反序列化漏洞利用、哥斯拉获取shell 上线msf msf派生shell到cs 内网信息收集 mimikatz获取用户密码 cs横向移动 PTT攻击(票据传递) 方法2:通过msf利用永恒之蓝…

测试之分类【测试对象、是否查看代码、开发】

文章目录1. 按测试对象分类2. 按照是否查看代码划分3. 按照开发阶段划分1. 按测试对象分类 可靠性测试容错性测试安装卸载测试内存泄露测试弱网测试 (1)可靠性测试 可靠性 正常运行时间 / (正常运行时间 非正常运行时间) * 100% (最高 10…

Servlet的实战用法(表白墙前后端)

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 服务器版本的表白墙 创建项目 约定前后端交互接口 获取全部留言 发表新的留言 服务端代码 创建Message类 创建DBUtil类 创建MessageServlet…

双指针合集

87合并两个有序的数组 import java.util.*; public class Solution {public void merge(int A[], int m, int B[], int n) { int i m-1;int j n-1;for(int k nm-1;k>0;k--){if(j<0) A[k] A[i--];else if(i<0) A[k] B[j--];else if(A[i]>B[j]) A[k] A[i--]…

六道数据结构算法题详解

目录 1.力扣350题. 两个数组的交集 II 2.力扣121题. 买卖股票的最佳时机 3.力扣566题. 重塑矩阵 4.力扣118题. 杨辉三角 5.牛客BM13 判断一个链表是否为回文结构 6.牛客BM14 链表的奇偶重排 1.力扣350题. 两个数组的交集 II 题目&#xff1a;给你两个整数数组 nums1 和 n…

2022年终总结---权衡好工作和生活

2022总结 【校园】2022年6月研究生顺利毕业&#xff0c;让下文的一切才变的有机会。感谢师弟送学长毕业&#xff0c;感谢在最后时刻各位舍友帮忙送材料&#xff0c;怀念最后一个月一起打球的时光。 【工作】2022年6月入职阿里&#xff0c;成为打工人。在这个大的平台&#xf…

Goland项目使用gomod配置

Goland 项目创建 goland2020.3 及以上 IDE&#xff0c;默认创建的 go 项目 就是使用 gomod 管理&#xff01; goland2020.3 及以下的 IDE&#xff0c;创建项目时需要选择 带小括号 vgo 的才是 gomod 管理模式 下图为使用 goland2021.3 版本创建使用 gomod 管理的 go 项目&…

14种可用于时间序列预测的损失函数

在处理时间序列预测问任务时&#xff0c;损失函数的选择非常重要&#xff0c;因为它会驱动算法的学习过程。以往的工作提出了不同的损失函数&#xff0c;以解决数据存在偏差、需要长期预测、存在多重共线性特征等问题。本文工作总结了常用的的 14 个损失函数并对它们的优缺点进…

线段树(Segment tree)

线段树 线段树是一种二叉树形数据结构,用以储存区间或线段,并且允许快速查询结构内包含某一点的所有区间。 视频讲解 线段树主要实现两个方法:「求区间和」&「修改区间」,且时间复杂度均为 O(logn)。 nums = [1, 2, 3, 4, 5] 对应的线段树如下所示: 使用数组表示线段…

【阶段三】Python机器学习33篇:机器学习项目实战:医学病症关联规则分析

本篇的思维导图: 医学病症关联规则分析 项目背景 本项目演示一个医学领域的有趣应用——病症关联规则分析,同时利用apyori库和mlxtend库来编写代码,从数据分析的角度去研究病症背后的关联规则。假设有一种医学理论认为,五脏和一些病症之间存在关联关系,见下表。例…