操作系统复习指南

2023-11-15


前言

操作系统对于我们理解计算机的运行非常重要,无论是面试还是工作过程中的需要,掌握好操作系统的底层运行原理对于我们学习的提升有重大的帮助,接下来的几章节我将带大家系统的复习一遍操作系统。

提示:以下是本篇文章正文内容,下面案例可供参考

一、中断

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

1.中断的分类

在这里插入图片描述
这里我们主要抓住信号的来源来区分中断的类型

在这里插入图片描述

在这里插入图片描述

2.硬中断和软中断

这里插入一个知识点,关于硬中断和软中断:

(1) 硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。

(2) 软中断为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。

硬中断和软中断的区别软中断是执行中断指令产生的,而硬中断是由外设引发的。硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。硬中断是可屏蔽的,软中断不可屏蔽。硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。


二、系统调用

1.什么是系统调用

在这里插入图片描述

在这里插入图片描述


三,进程

1.什么是进程

程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。进程是资源分配的基本单位。

2. 进程的组织方式

在这里插入图片描述

3 .进程的特征

在这里插入图片描述

在这里插入图片描述

4. 进程的几种状态及其转换

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.进程间的通信

这里引用小林的博客我觉得讲的非常不错的:小林coding 这里概括了它的一些应用场景和优缺点, 面试可以和面试官深入聊聊。

6. 进程的调度

在这里插入图片描述
低级调度(重点):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 作业调度算法

先到先服务,短作业优先,高响应比算法比较:
在这里插入图片描述
重点介绍一下高响应比算法:
在这里插入图片描述


8. 进程调度算法

(重点区分哪些调度算法是进程调度哪些是作业调度)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引入了下面这种调度算法:
在这里插入图片描述
在这里插入图片描述
这里有一个例子可以理解这个算法:多级反馈调度算法


9. 进程的同步与互斥

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现进程互斥的软件实现方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现进程互斥的硬件实现方法:

在这里插入图片描述

四. 死锁

1. 管程

在这里插入图片描述
就我理解的话:管程相当于封装好的PV操作,就拿生产者和消费者这个例子来说,相当于把共享资源放在一个管程中,每次生产者消费者要访问共享资源都需要通过管程的方法(函数)来访问,类似于一个管家,生产者把东西交给管家,消费者从管家手里拿东西,这个管家每次只能处理一件事情(进程),不能同时拿和取操作。

在这里插入图片描述
在这里插入图片描述

2. 死锁的必要条件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 死锁的预防

在这里插入图片描述
把打印机改造成一个共享设备,相当于把每个进程的请求放入到队列中,再依次进行处理。而不用像之前需要阻塞住进程。

在这里插入图片描述
在这里插入图片描述
假如A进程需要资源1,B进程需要资源2,C进程同时需要资源3,假如有源源不断的A类或者B类资源,那么C类资源会长时间得不到满足,进而发生饥饿。

在这里插入图片描述

在这里插入图片描述
在介绍银行家算法之前,先提出一个问题,死锁避免和死锁预防有什么区别?

死锁防止是破坏产生死锁的四个条件(互斥条件,占用和等待条件,不剥夺条件,循环等待条件)
死锁避免仅根据当前进程申请资源的情况判断是否会进入不安全状态。当问到银行家算法是破坏哪个死锁必要条件的时候,显然这种提问就是错误的,人家是死锁避免算法,压根就不是死锁预防。

4. 银行家算法

在这里插入图片描述

总结下来一句话:当进程请求的资源数大于系统所拥有的资源数,则不给予分配,否则会使系统处于不安全的状态,银行家算法是逐一分析每个进程是否处于安全状态来分配资源的。

在这里插入图片描述
在这里插入图片描述

五. 内存

1. 内存的基础知识

在这里插入图片描述
我们的程序在装入的这个阶段才开始完成逻辑地址到物理地址的映射,结合Java类的加载过程:

类加载器就是寻找类或接口字节码文件进行解析并构造JVM内部对象表示的组件,在java中类装载器把一个类装入JVM,经过以下步骤:
1、加载:查找和导入Class文件
2、链接:其中解析步骤是可以选择的 (a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 (c)解析:将符号引用转成直接引用
3、初始化:对静态变量,静态代码块执行初始化工作
————————————————
版权声明:本文为CSDN博主「爆米花9958」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuemengrui12/article/details/82707473

我们在链接的解析过程:将符号引用转化为直接引用,其实就是一个逻辑到物理地址的映射。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 内存分配

在这里插入图片描述
在这里插入图片描述

3. 动态分区算法总结

在这里插入图片描述

4. 分页管理

在这里插入图片描述

5. 分页地址变换过程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

没写完 回去补充

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统复习指南 的相关文章

  • webpack零基础入门

    一 什么是webpack Webpack 是一个现代的 JavaScript 应用程序静态模块打包器 module bundler 它是一个开源的前端工具 可以将各种资源文件 JS CSS 图片 字体等 打包成一个或多个包 并且能够通过配置

随机推荐

  • 《Data Mining》中文版

    欢迎来到 Data Mining 中文版 Data Mining 本书由Charu C Aggarwal所著 出版于2015年4月14日 豆瓣无评分 亚马逊评分4星 5星满分 从CSDN社区一些讨论情况来看 普遍认为本书质量较高 故我们选取
  • Nginx禁止IP,只允许域名访问

    为何禁止IP访问呢 不想直接让他们访问 修改Nginx配置文件 nginx conf 一下命令能帮不快速找到nginx的配置文件 find name nginx conf 在配置文件里面加入 一下代码 就能实现 if host d d d
  • SQL注入攻击原理及防御策略

    一 什么是SQL注入 SQL注入 一般指web应用程序对用户输入数据的合法性没有校验或过滤不严 攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句 在不知情的情况下实现非法操作 以此来实现欺骗数据库服务器执行非授权
  • Linux shell中的wait命令的使用

    Linux shell中的wait命令的使用 一 wait命令作用 二 使用格式 三 举例 3 1 案例一 3 2 案例二 函数中使用wait 3 3 案例三 3 4 案例四 四 串行执行与并行执行 4 1 串行执行 4 2 并行执行 4
  • mysql中有几种模糊查询?

    mysql中有几种模糊查询 聊起mysql中的模糊查询 大家可能马上就能想到like保留字 like加通配符就能完成很多模糊查询的操作 比如希望查询出所有以词jet开头的产品 select from table name where nam
  • LeetCode519. 随机翻转矩阵

    LeetCode519 随机翻转矩阵 题目传送门 题目 给你一个 m x n 的二元矩阵 matrix 且所有值被初始化为 0 请你设计一个算法 随机选取一个满足 matrix i j 0 的下标 i j 并将它的值变为 1 所有满足 ma
  • 转 不管你学的是什么专业,你都应该多少懂些管理学的东西

    转 不管你学的是什么专业 你都应该多少懂些管理学的东西 蝴蝶效应 青蛙现象 鳄鱼法则 鲇鱼效应 羊群效应 刺猬法则 手表定律 破窗理论 二八定律 木桶理论 马太效应 鸟笼逻辑 责任分散效应 帕金森定律 晕轮效应 霍桑效应 习得性无助实验 证
  • 基于SpringBoot+thymeleaf的课程分享平台(源码免费获取+项目介绍+运行文档)

    涉及技术 本项目核心技术采用 SpringBoot mybatis 前端 layui 开发工具 idea 数据库 mysql5 7 模版引擎采用的是 thymeleaf 安全框架采用 SpringSecurity 日志框架采用 logbac
  • vector的实现(c++)

    前言 vector是很重要的数据结构 所以了解它的底层的核心原理是很有必要的 如何了解它的底层原理呢 除了阅读原码外 自己实现一下vector的核心逻辑也是不错的选择 目录 1 四个默认成员函数 2 迭代器的实现 3 增删查改 4 容量相关
  • java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录

    java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效 请重新登录 1 准备工作 1 1 接口调用账户 1 2 下载 金蝶星空云 Java SDK 1 3 Maven项目
  • 由于现在工作环境不适合经常发博客,所以暂缓更新。

    好久没更新了 其实还有一些内容 不过目前没时间整理 后续争取补回 转载于 https www cnblogs com xianghang123 p 4908710 html
  • 【网络】UDP网络服务器

    代码的整体逻辑 UDP服务端 udpServer cc 服务端的调用 udpServer hpp 服务端的实现 UDP客户端 udpClient cc 客户端的调用 udpClient hpp 客户端的实现 1 udp服务端 服务端 1 初
  • 【用python写一个简易的消息轰炸代码】

    用python写一个简易的消息轰炸代码 前言 一 思路讲解 二 使用步骤 1 引入库 2 完整代码 总结 前言 有没有在qq 微信想用一句话不停怼一个人 这篇文章教你在回车能发送消息的一系列软件中 快速多次发送你想发的话 一 思路讲解 1
  • cocos2d-x学习笔记(持续更新)

    接受触屏事件的优先级是值越小 响应触屏事件的优先级越高 Z值越大 越外面 粒子系统设计工具 Particle Designer软件 目前只支持MAC平台 导出 plist文件 地图设计工具 Tiles 目前有两个版本 一个是Java版本 另
  • 免费的API

    https www jianshu com p e6f072839282 目前接口列表 新实时段子https api apiopen top getJoke page 1 count 2 type video 通过Id查段子https ap
  • VSCode无法登录leetcode,[ERROR] invalid password?

    VSCode无法登录leetcode 我使用的是 leetcode cn com 账户 选择的是第三方登录 github账号 v16 13 0 Active Name Version Desc solution discuss 2019 0
  • c语言常用算法归纳,C语言常用算法

    一 计数 求和 求阶乘等简单算法 此类问题都要使用循环 要注意根据问题确定循环变量的初值 终值或结束条件 更要注意用来表示计数 和 阶乘的变量的初值 例 用随机函数产生100个 0 99 范围内的随机整数 统计个位上的数字分别为1 2 3
  • pycharm配置监听端口0.0.0.0后不能在浏览器上通过本地地址访问

    解决方案 https segmentfault com q 1010000007625566参考方案 在settings py的ALLOWED HOSTS中添加 127 0 0 1 192 168 0 128 localhost 中间是本地
  • Jquery Ajax前后端交互技术

    Jquery Ajax前后端交互技术 1 什么是Ajax Ajax是一种异步 无刷新技术 什么是异步 1 现在我们大部分的请求都是同步 我必须接受你的请求给我返回结果了 我才能进行下一步操作 2 异步就是 无需返回服务器的结果 就可以继续做
  • 操作系统复习指南

    文章目录 前言 一 中断 1 中断的分类 2 硬中断和软中断 二 系统调用 1 什么是系统调用 三 进程 1 什么是进程 2 进程的组织方式 3 进程的特征 4 进程的几种状态及其转换 5 进程间的通信 6 进程的调度 7 作业调度算法 8