首页
  • 监控

    • grafana
    • prometheus
  • 学习笔记

    • 《核心系统命令实战》
    • 《MySQL 是怎样运行的:从根儿上理解 MySQL》
    • 《Ansible权威指南》
  • 博客搭建
  • git
  • python
  • 友情链接
  • 文档编写规范
  • 我用过的电脑
  • 喷涂相关
  • 每日一溜
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小刘说

砥砺前行
首页
  • 监控

    • grafana
    • prometheus
  • 学习笔记

    • 《核心系统命令实战》
    • 《MySQL 是怎样运行的:从根儿上理解 MySQL》
    • 《Ansible权威指南》
  • 博客搭建
  • git
  • python
  • 友情链接
  • 文档编写规范
  • 我用过的电脑
  • 喷涂相关
  • 每日一溜
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 软考中级

    • 计算机硬件基础
    • 操作系统概述
      • 2. 操作系统概述
        • 2.1. 程序设计语言
        • 2.2. 进程管理-进程的状态
        • 2.3. 进程管理-死锁问题
        • 2.3.1. 产生死锁的必要条件
        • 2.3.2. 死锁预防
        • 2.4. 进程管理-银行家算法
        • 2.5. 进程管理-进程的互斥与同步
        • 2.6. 进程管理-PV操作
        • 2.7. 存储管理
        • 2.7.1. 页式存储
        • 2.7.2. 页面置换算法
        • OPT(最佳置换算法)
        • FIFO(先进先出算法)
        • LRU(最近最久未使用算法)
        • LFU(最近最少使用算法)
        • 2.7.3. 文件管理
        • 树形目录结构
        • 2.7.4. 设备管理
        • 数据传输控制方式
    • 系统开发与项目管理基础
    • 知识产权
    • 数据通信基础
    • 网络体系架构
    • 局域网技术
    • 广域网与接入网技术
    • 因特网与网络互联技术
    • 网络管理技术
    • 网络安全技术
    • 网络规划与设计
    • Windows服务器配置
    • Linux服务器配置
    • 网络设备配置
    • 网络设备配置(路由器配置)
  • 博客搭建

  • git

  • 专题
  • 软考中级
小刘
2023-05-15
目录

操作系统概述

# 操作系统概述

# 2. 操作系统概述

# 2.1. 程序设计语言

  • 机器语言

  • 汇编语言

  • 高级语言

    • 编译语言

    • 翻译语言

  • 4GL语言

# 2.2. 进程管理-进程的状态

# 2.3. 进程管理-死锁问题

进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一个可能发生的事,那进程就死锁了。

而如果一个或多个进程产生死锁,就会造成系统死锁。

# 2.3.1. 产生死锁的必要条件

  1. 互斥条件:进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占用。
  2. 请求和保持条件:当进程因请求资源而阻塞时,对已获得的资源保持不放。
  3. 不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时由自己释放。
  4. 环路等待条件:在发生死锁时,必然存在一个进程–资源的环形链。(你等我我等你)

# 2.3.2. 死锁预防

  1. 资源一次性分配:一次性分配所有资源,这样就不会再有请求了:(破坏请求条件)
  2. 只要有一个资源得不到分配,也不给这个进程分配其他的资源:(破坏请保持条件)
  3. 可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不可剥夺条件)
  4. 资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)

# 2.4. 进程管理-银行家算法

银行家算法:分配资源的原则

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量。
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源。

# 2.5. 进程管理-进程的互斥与同步

# 2.6. 进程管理-PV操作

临界区:每个进程中访问临界资源的那段代码称为临界区。

信号量:是一种特殊的变量。

  • 互斥信号量

  • 同步信号量

PV操作:解决互斥和同步的问题。

PV操作是分开来看的:

P操作:使 ,若 ,则该进程继续执行,否则该进程排入等待队列。

V操作:使 ,若 ,则唤醒等待队列的一个进程。

# 2.7. 存储管理

# 2.7.1. 页式存储

基本原理: 将各进程的虚拟空间划分为若干个长度相等的页, 把内存空间与页相等的大小划分为大小相等的片或页面, 采用请求调页或预调页技术实现内外存的统—管理。 优点: 利用率高, 产生内存碎片小, 内存空间分配及管理简单。

缺点:要有相应的硬件支持, 增加了系统开销; 若请求调页的算法选择不当, 则可能产生”抖动“ 现象。

页表:分成了页号和页内地址两块。页面大小为:4KB

img

img

# 2.7.2. 页面置换算法

在进程运行的过程中,若其访问的页面不存在内存中,则会产生缺页中断。如果此时内存中没有空闲的页面,操作系统就需要在内存中选择一个页面将其移出,从而可以将需要访问的页面调入内存中。而用来选择淘汰哪一页的算法就叫做页面置换算法。

# OPT(最佳置换算法)

最佳置换算法:每次选择淘汰的页面将是以后永不使用或者最长时间内不在被访问的页面。这样可以保证最低的缺页率。

例如:假如操作系统给进程分配了3个内存块,并且该进程接下来会依次访问7,5,2,3,6,2,7,1,6,7,2,3,7,2,7。

v2-e4b526193b9505cb4f1fd476181212db_1440w

如图所示,在第4步中,需要把3号页面调入内存,此时内存已经满了,所以需要从7,5,2中选择一个页面进行淘汰。按照最佳置换算法规则,往后寻找,此时2和7会被先后访问,所以把5号页面淘汰,即最长时间内不在被访问的页面。

# FIFO(先进先出算法)

FIFO算法是最简单的页面置换算法。顾名思义,FIFO每次淘汰的页面是最早进入内存的页面。FIFO的实现方法是把调入内存的页面按先后顺序放入队列中,当需要置换页面时,选择队头的页面即可。

例如:假如操作系统给进程分配了3个内存块,并且该进程接下来会依次访问7,5,2,3,6,2,7,1,6,7,2,3,7,2,7。页面在内存中的表现如下所示:

v2-8e87fd3057c0d4a6b0d53be379880aec_1440w 拷贝

# LRU(最近最久未使用算法)

LRU(Least Recently Used),每次淘汰的页面是最近最久未使用的页面。所以需要去记录该页面上次被访问以来所经历的时间t。当需要淘汰页面时,选择内存中现有页面中t最大的,即最近最久未使用的页面。

如:假如操作系统给进程分配了3个内存块,并且该进程接下来会依次访问7,5,2,3,6,2,7,1,6,7,2,3,7,2,7。页面在内存中的表现如下所示:

v2-8e87fd3057c0d4a6b0d53be379880aec_1440w 拷贝

# LFU(最近最少使用算法)

LFU(最近最少使用算法),它是基于"如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小“的思路。注意LFU和LRU算法的不同之处,LRU的淘汰规则是基于访问时间,而LFU是基于访问次数的。

如:假如操作系统给进程分配了3个内存块,并且该进程接下来会依次访问5,4,5,3,3、2、5、1、4。页面在内存中的表现如下所示:

v2-03bf28285a5d7071659dab8d3fbbf59f_1440w 拷贝

如图所示,在第八步中需要把1号页面调入内存,而此时内存已满,需要从5、2、3中选择一个页面进行淘汰。按照LFU规则,2号页面最近一段时间内使用次数为1,它是最小的。所以把2号页面淘汰出去。

# 2.7.3. 文件管理

# 树形目录结构

树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。

绝对路径:完整的描述文件位置的路径就是绝对路径。

相对路径: 所谓相对路径,顾名思义就是自己相对目标的位置,不论将这些文件放到哪里,只要他们的相对关系没变, 就不会出错。

# 2.7.4. 设备管理

# 数据传输控制方式

按照 I/O 控制功能的强弱,以及和CPU之间联系方式的不同,可把I/O 设备的数据传输方式分为4种:

  • 程序直接控制方式( 查询控制方式)
  • 中断控制方式
  • DMA方式
  • 通道方式

程序控制方式:在程序的主动控制下,通过读取状态寄存器了解接口的清况,完成相应的程序操作。为了及时了解接口的状态,需要时间密集的查询操作。CPU 效率低。

中断控制方式:当接口出现需要程序干预的事件,通过中断通知CPU , CPU 再读取状态寄存器,确定事件的种类,以便执行不同的代码处理。CPU 效率高而且及时。

DMA(Direct Memory Access)控制方式:CPU与接口的数据传送采用DMA 传送,即传送的具体过程由硬件( DMA控制器)完成,传送速度比通过CPU 快,尤其是在批量传送时效率很高。

上次更新: 2024/05/11, 03:55:33

← 计算机硬件基础 系统开发与项目管理基础→

最近更新
01
kubernetes控制器-Service
08-18
02
kubernetes控制器-Deployment
08-08
03
kubernetes调度基础
07-27
更多文章>
Theme by Vdoing | Copyright © 2023-2024 本站支持IPv6访问 本站支持SSL安全访问
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式