操作系统重点总结

文章目录

  • 1. 操作系统重点总结
    • 1.1 操作系统简介
      • 1.1.1 操作系统的概念和功能
      • 1.1.2 操作系统的特征
        • 1.1.2.1 并发
        • 1.1.2.2 共享
        • 1.1.2.3 虚拟
        • 1.1.2.4 异步
      • 1.1.3 操作系统的发展与分类
      • 1.1.4 中断和异常
      • 1.1.5 系统调用
      • 1.1.6 操作系统的体系结构
      • 1.1.7 操作系统简介总结
    • 1.2 进程
      • 1.2.1 进程的概念,组成和特征
      • 1.2.2 进程的组织
      • 1.2.3 进程的状态与转换
      • 1.2.4 进程控制
      • 1.2.5 进程通信
    • 1.3 线程
    • 1.4 处理机调度
    • 1.5 进程调度
      • 1.5.1 进程调度的时机,切换与过程以及方式
      • 1.5.2 调度算法的评价指标
      • 1.5.3 调度算法
        • 1.5.3.1 先来先服务(FCFS)
        • 1.5.3.2 短作业优先(SJF)
        • 1.5.3.3 高响应比优先(HRRN)
        • 1.5.3.4 时间片轮转(RR)
        • 1.5.3.5 优先级调度算法
        • 1.5.3.6 多级反馈队列调度算法
    • 1.6 进程同步和互斥
      • 1.6.1 进程互斥的软件实现方法
      • 1.6.2 进程互斥的硬件实现方法
      • 1.6.3 信号量机制
      • 1.6.4 用信号量机制实现进程互斥、同步、前驱关系:
      • 1.6.5 经典的进程同步互斥问题:
    • 1.7 管程
    • 1.8 死锁
      • 1.8.1 哲学家进餐问题
      • 1.8.2 死锁的概念
      • 1.8.3 死锁的处理策略——预防死锁
      • 1.8.4 死锁的处理策略——避免死锁
        • 1.8.4.1 安全序列
        • 1.8.4.2 银行家算法
      • 1.8.5 死锁的处理策略——检测和解除
    • 1.9 内存
      • 1.9.1 内存的基础知识
      • 1.9.2 内存管理的概念
      • 1.9.3 覆盖技术与交换技术
      • 1.9.4 连续分配管理
      • 1.9.5 动态分区分配算法
      • 1.9.6 基本分页存储管理的基本概念
      • 1.9.7 基本地址变换机构
      • 1.9.8 具有快表(TLB)的地址变换机构
      • 1.9.9 两级页表
      • 1.9.10 基本分段存储管理
      • 1.9.11 段页式管理
      • 1.9.12 虚拟内存的基本概念
      • 1.9.13 请求分页管理方式
      • 1.9.14 页面置换算法
      • 1.9.15 页面分配策略
    • 1.10 文件
      • 1.10.1 初识文件管理
      • 1.10.2 文件的逻辑结构
      • 1.10.3 文件目录
      • 1.10.4 文件的物理结构
      • 1.10.5 文件存储空间管理
      • 1.10.6 文件的基本操作
      • 1.10.7 文件共享
      • 1.10.8 文件保护
      • 1.10.9 文件系统的层次结构
    • 1.11 磁盘
      • 1.11.1 磁盘的结构
      • 1.11.2 磁盘调度算法
      • 1.11.3 减少延迟时间的方法
      • 1.11.4 磁盘的管理
    • 1.12 IO设备
      • 1.12.1 IO设备的基本概念与分类
      • 1.12.2 IO控制器
      • 1.12.3 IO控制方式
      • 1.12.4 IO软件的层次
      • 1.12.5 假脱机技术
      • 1.12.6 设备的分配与回收
      • 1.12.7 缓冲区管理

1. 操作系统重点总结

1.1 操作系统简介

1.1.1 操作系统的概念和功能

在这里插入图片描述

在这里插入图片描述

1.1.2 操作系统的特征

1.1.2.1 并发

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

常考易混概念——并行:指两个或多个事件在同一时刻同时发生。

注意(重要考点):

单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行

多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

两者区别

  1. 概念不同
    并发:并发是指两个或多个事件在同一时间间隔发生
    并行:并行是指两个或者多个事件在同一时刻发生。
  2. 侧重点不同
    并发侧重于在同一实体上
    并行:并行侧重于在不同实体上
  3. 处理不同
    并发:并发在一台处理器上“同时”处理多个任务。
    并行:并行在多台处理器上同时处理多个任务
1.1.2.2 共享

在这里插入图片描述

并发和共享的关系
并发性是指系统中同时存在着多个运行的程序
共享性是指系统在的资源可供内存中多个并发执行的进程使用

如果失去了并发性,则系统在一个时间内只能运行一个程序,则共享性失去了存在的意义
如果失去了共享性,则QQ和微信不能同时访问硬盘资源,也就无法同时发送文件,导致无法实现并发

1.1.2.3 虚拟

在这里插入图片描述

背景知识:一个程序需要放入内存并给它分配CPU才能执行

问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU

的电脑中能同时运行这么多个程序呢?

答:这是虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎有

6个CPU在同时为自己服务

1.1.2.4 异步

概念:异步是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,资源给了其中的一道程序,由于有限无法再给其他的程序,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
如果失去了并发性,系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才可能导致异步性。
在这里插入图片描述

1.1.3 操作系统的发展与分类

在这里插入图片描述

1.1.4 中断和异常

在这里插入图片描述

1.1.5 系统调用

在这里插入图片描述

1.1.6 操作系统的体系结构

在这里插入图片描述

1.1.7 操作系统简介总结

在这里插入图片描述

1.2 进程

1.2.1 进程的概念,组成和特征

在这里插入图片描述

1.2.2 进程的组织

在这里插入图片描述

1.2.3 进程的状态与转换

在这里插入图片描述

1.2.4 进程控制

在这里插入图片描述

1.2.5 进程通信

在这里插入图片描述

1.3 线程

在这里插入图片描述

1.4 处理机调度

在这里插入图片描述

1.5 进程调度

1.5.1 进程调度的时机,切换与过程以及方式

在这里插入图片描述

1.5.2 调度算法的评价指标

在这里插入图片描述

1.5.3 调度算法

1.5.3.1 先来先服务(FCFS)

在这里插入图片描述

1.5.3.2 短作业优先(SJF)

在这里插入图片描述

1.5.3.3 高响应比优先(HRRN)

在这里插入图片描述

1.5.3.4 时间片轮转(RR)

在这里插入图片描述

在这里插入图片描述

1.5.3.5 优先级调度算法

在这里插入图片描述

在这里插入图片描述

1.5.3.6 多级反馈队列调度算法

在这里插入图片描述

1.6 进程同步和互斥

在这里插入图片描述

1.6.1 进程互斥的软件实现方法

在这里插入图片描述

1.6.2 进程互斥的硬件实现方法

在这里插入图片描述

1.6.3 信号量机制

在这里插入图片描述

1.6.4 用信号量机制实现进程互斥、同步、前驱关系:

在这里插入图片描述

1.6.5 经典的进程同步互斥问题:

  1. 生产者–消费者问题
  2. 生产者–多消费者问题
  3. 吸烟者问题
  4. 读者–写者问题
  5. 哲学家进餐问题

1.7 管程

在这里插入图片描述

1.8 死锁

1.8.1 哲学家进餐问题

在这里插入图片描述

1.8.2 死锁的概念

在这里插入图片描述

死锁的处理策略:

在这里插入图片描述

1.8.3 死锁的处理策略——预防死锁

在这里插入图片描述

1.8.4 死锁的处理策略——避免死锁

1.8.4.1 安全序列
  1. 所谓安全序列,就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成。只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个

  2. 如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。这就意味着之后 可能所有进程都无法顺利的执行下去。当然,如果有进程ᨀ 前归还了一些资源,那系统也有可能重新回到安全状态,不过我们在分配资源之前总是要考虑到最坏的情况。

  3. 如果系统处于安全状态,就一定不会发生死锁。如果系统进入不安全状态,就可能发生死锁(系统处于不安全状态未必死锁,但死锁时一定处于不安全状态。系统处于安全状态一定不会死锁)

  4. 因此可以在资源分配之前预先判断这次分配是否会导致系统进入不安全状态,以此决定是否答应资源分配请求。这也是“银行家算法”的核心思想。

1.8.4.2 银行家算法

在这里插入图片描述

数据结构:

长度为 m 的一维数组 Available 表示还有多少可用资源

n*m 矩阵 Max 表示各进程对资源的最大需求数

n*m 矩阵 Allocation 表示已经给各进程分配了多少资源

Max – Allocation = Need 矩阵表示各进程最多还需要多少资源

用长度为 m 的一位数组 Request 表示进程此次申请的各种资源数

银行家算法步骤:

①检查此次申请是否超过了之前声明的最大需求数

②检查此时系统剩余的可用资源是否还能满足这次请求

③试探着分配,更改各数据结构

④用安全性算法检查此次分配是否会导致系统进入不安全状态

安全性算法步骤:

检查当前的剩余可用资源是否能满足某个进程的最大需求,如果可以,就把该进程加入安全序列,并把该进程持有的资源全部回收。

不断重复上述过程,看最终是否能让所有进程都加入安全序列。

1.8.5 死锁的处理策略——检测和解除

在这里插入图片描述

1.9 内存

1.9.1 内存的基础知识

在这里插入图片描述

1.9.2 内存管理的概念

在这里插入图片描述

1.9.3 覆盖技术与交换技术

在这里插入图片描述

1.9.4 连续分配管理

在这里插入图片描述

1.9.5 动态分区分配算法

在这里插入图片描述

1.9.6 基本分页存储管理的基本概念

在这里插入图片描述

1.9.7 基本地址变换机构

在这里插入图片描述

1.9.8 具有快表(TLB)的地址变换机构

什么是快表(TLB)?

快表,又称联想寄存器TLB, translation lookaside buffer ),是一种访问速度比内存快很多的高速缓存TLB不是内存!),用来存放最近访问的页表项的副本,可以加速地址变换的速度。与此对应,内存中的页表常称为慢表

时间局部性:如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;如果某个数据被访问过,不久之后该数据很可能再 次被访问。(因为程序中存在大量的循环)

空间局部性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放 的)

上小节介绍的基本地址变换机构中,每次要访问一个逻辑地址,都需 要查询内存中的页表。由于局部性原理,可能连续很多次查到的都是同一个页表项

在这里插入图片描述

1.9.9 两级页表

在这里插入图片描述

1.9.10 基本分段存储管理

在这里插入图片描述

1.9.11 段页式管理

在这里插入图片描述

1.9.12 虚拟内存的基本概念

在这里插入图片描述

1.9.13 请求分页管理方式

在这里插入图片描述

1.9.14 页面置换算法

在这里插入图片描述

1.9.15 页面分配策略

在这里插入图片描述

1.10 文件

1.10.1 初识文件管理

在这里插入图片描述

1.10.2 文件的逻辑结构

在这里插入图片描述

1.10.3 文件目录

在这里插入图片描述

1.10.4 文件的物理结构

在这里插入图片描述

1.10.5 文件存储空间管理

在这里插入图片描述

1.10.6 文件的基本操作

在这里插入图片描述

1.10.7 文件共享

在这里插入图片描述

1.10.8 文件保护

在这里插入图片描述

1.10.9 文件系统的层次结构

在这里插入图片描述

在这里插入图片描述

1.11 磁盘

1.11.1 磁盘的结构

在这里插入图片描述

1.11.2 磁盘调度算法

在这里插入图片描述

1.11.3 减少延迟时间的方法

在这里插入图片描述

1.11.4 磁盘的管理

在这里插入图片描述

1.12 IO设备

1.12.1 IO设备的基本概念与分类

在这里插入图片描述

1.12.2 IO控制器

在这里插入图片描述

1.12.3 IO控制方式

在这里插入图片描述

1.12.4 IO软件的层次

在这里插入图片描述

1.12.5 假脱机技术

在这里插入图片描述

1.12.6 设备的分配与回收

在这里插入图片描述

1.12.7 缓冲区管理

在这里插入图片描述

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

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

相关文章

使用YApi平台来管理接口

快速上手 进入YApi官网,进行注册登录https://yapi.pro/添加项目 3. 添加分类 4. 添加接口 5. 添加参数 添加返回数据 可以添加期望 验证 YAPI(Yet Another Practice Interface)是一个现代化的接口管理平台,由淘宝团队…

【Python Tips】使用func_timeout库实现os.system()命令行的超时报错检测

一、引言 有时候在python项目代码中使用 os.system() 使用命令行调用外部程序或者函数时,由于我们不知道外部程序会不会因为一些未知原因崩掉,但我们又不想项目代码因此中断,因此,我们可以使用已有的func_timeout库来实现超时检测…

Python性能优化:代码加速与内存管理技巧

在Python编程中,性能优化往往是一个重要但常被忽视的话题。尽管Python以其简洁易读的语法和强大的标准库赢得了广泛的开发者基础,但在处理大规模数据或高性能要求的应用时,其解释执行和动态类型系统的特性可能会成为性能瓶颈。本文将探讨一系…

企业邮箱如何进行邮件监控

企业邮箱监控保障资产安全、合规性,防范网络攻击,提升员工行为。核心要素包括内容扫描、行为分析、合规性检查等。实施策略涉及技术选择、政策制定、员工培训。企业邮箱如何进行邮件监控呢?Zoho邮箱的eDiscovery功能可实现长期邮件保存和监控…

基于百度paddle检索系统的召回

所谓召回,无非就是用一段不规则文本模拟用户query查询,而要召回的是标准的titlekey,这些是要构建索引库的,所有相似文本对的第二个文本必须要在索引库里存在,不然就没法评估,因为标记都是0,还有召回1,召回5等,并不是什…

在Ubuntu 22 VPS服务器上更改phpMyadmin端口的方法

更改 Ubuntu 22 VPS服务器上的 phpMyAdmin 端口可以增强安全性和可管理性。但是具体应该怎么操作呢?接下来将带您了解在Ubuntu 22 VPS 服务器上更改phpMyadmin的端口全过程,一起来看看吧。 准备你的环境 在开始之前,让我们先确保你已做好一…

【前端逆向】最佳JS反编译利器,原来就是chrome!

有时候需要反编译别人的 min.js。 比如简单改库、看看别人的 min,js 干了什么,有没有重复加载?此时就需要去反编译Javascript。 Vscode 里面有一些反编译插件,某某Beautify等等。但这些插件看人品,运气不好搞的话,反…

Vue 项目中 marked.js 怎么定制链接的点击行为

在 Vue 3 组件中使用 marked.js 并定义有效的 handleLinkClick 函数&#xff0c;你可以采用以下几种方法&#xff1a; 使用组件方法和全局函数 在你的 Vue 组件中定义 handleLinkClick 方法&#xff0c;然后将其暴露到全局作用域&#xff1a; <template><div v-htm…

嵌入式软件文件目录

以下是一个清爽的文件夹分类建议&#xff0c;适用于大多数嵌入式软件项目&#xff1a; 1. 根目录 README.md&#xff1a;项目简介、安装步骤、配置说明等。LICENSE&#xff1a;项目使用的许可证文件。 2. 源代码目录 2.1 src 存放所有源代码文件。 2.2 子目录划分 bsp&a…

实验2-3-8 计算火车运行时间

//实验2-3-8 计算火车运行时间 /* 输入格式&#xff1a;输入在一行中给出2个4位正整数&#xff0c;其间以空格分隔&#xff0c;分别表示火车的出发时间和到达时间。 每个时间的格式为2位小时数&#xff08;00-23&#xff09;和2位分钟数&#xff08;00-59&#xff09;&#xff…

Mysql中DML的几种操作

DML&#xff08;Data Manipulation Language&#xff0c;数据操纵语言&#xff09;是SQL中用于添加、删除、更新和查询数据库记录的一类语句。在MySQL中&#xff0c;DML主要包括以下几种操作&#xff1a; 1. 插入&#xff08;INSERT&#xff09; 用途&#xff1a;向表中插入新…

类方法的分析和举例

在Python中&#xff0c;类方法是一种与类相关联的方法&#xff0c;而不是与类的实例相关联。类方法可以通过在方法定义时使用classmethod装饰器来创建。类方法的第一个参数通常是cls&#xff0c;它代表类本身&#xff0c;而不是类的实例。 class MyClass:class_attribute &qu…

ArcGIS for js SketchViewModel绘制点、线、面和圆(vue代码)

引入依赖&#xff08;前提要加载地图&#xff09;&#xff1a; import SketchViewModel from "arcgis/core/widgets/Sketch/SketchViewModel.js";import GraphicsLayer from "arcgis/core/layers/GraphicsLayer.js"; 创建SketchViewModel对象&#xff1a…

dockerfile部署镜像 ->push仓库 ->虚拟机安装建木 ->自动部署化 (详细步骤)

目录 创建私服仓库 vi /etc/docker/daemon.json vim deploy.sh判断脚本内容 创建 建木 后端部署 命名空间 设置密码用户名 创建git仓库 gitignore文件内容 图形项目操作 git maven docker镜像 点击流程日志 vim /etc/docker/daemon.json 执行部署脚本 ip 开发…

【嵌入式英语教程--4】C语言中的控制结构

C语言中的控制结构 英文原文 Control structures in the C programming language allow you to control the flow of execution in your programs. This includes decision-making constructs like if, else, and switch, as well as looping constructs such as for, while,…

RuntimeError: No CUDA GPUs are available

RuntimeError: No CUDA GPUs are available 目录 RuntimeError: No CUDA GPUs are available 【常见模块错误】 【解决方案】 解决步骤如下&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科…

Redis:集群测试及删除key

集群性能测试&#xff1a; redis-benchmark -h localhost -p 6379 -c 100 -n 100000 其中代表100个并发连接&#xff0c;100000个请求&#xff0c;检测host为localhost 端口为6379的redis服务器性能 命令删除相关key&#xff1a; src/redis-cli -h 127.0.0.1 -p 6379 -a …

Spring 高级解析 07

文章目录 1. Spring 概述&#xff08;基本情况&#xff09;1.1 Spring 的优势1.2 Spring 的核⼼结构 2. 核⼼思想 IoC 和 AOP2.1 什么是IoC&#xff1f;2.2 什么是AOP2.3 AOP在解决什么问题 3. Spring IoC ⾼级应⽤3.1 BeanFactory与ApplicationContext区别3.1.1 BeanFactory3.…

Android虚假定位的实现与防护

Android中常用的定位方式 一&#xff0c;GPS定位 定义&#xff1a;全球卫星定位系统&#xff0c;直接和卫星交互&#xff0c;获取设备经纬度 优点&#xff1a; 走卫星通信通道&#xff0c;无需打开Wifi或流量就能获得位置信息 精确度最高&#xff0c;几米到几十米 缺点&a…

Java面试八股之Spring AOP 和 AspectJ AOP 的区别

Spring AOP 和 AspectJ AOP 的区别 Spring AOP 和 AspectJ AOP 是两种不同的面向切面编程&#xff08;Aspect-Oriented Programming, AOP&#xff09;实现。它们各有特点&#xff0c;适用于不同的场景。下面是一些主要的区别&#xff1a; 1. 实现机制 Spring AOP: 基于代理…