操作系统基础知识复习总结_loserChen.的博客-程序员秘密

技术标签: 基础知识  操作系统  复习  

操作系统

操作系统概述

操作系统作用

  1. 存储管理

这里写图片描述
2. 处理机管理
这里写图片描述
3. 设备管理
这里写图片描述
4. 文件管理
这里写图片描述
5. 用户接口
这里写图片描述

操作系统的定义

是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。

  • 多道批处理系统
  1. 在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。
    
  2. ![这里写图片描述](https://img-blog.csdn.net/20180611133851521)
    
  3. 这里写图片描述
  • 分时系统

把处理机运行时间分成时间片,按时间片轮转的方式,把处理机分配给各联机作业使用。允许多个用户与计算机直接交互。

  • 实时系统

系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。

操作系统的特征

  1. 并发

    并发是指两个或多个事件在同一时间间隔内发生。

    微观上还是程序在分时地交替执行。

  2. 共享

    共享是指系统中的资源可供内存中多个并发执行的进程共同使用。

    1. 互斥共享方式

      如打印机、磁带机。在一段时间内只允许一个进程访问该资源。

    2. 同时访问方式

      如磁盘设备

  3. 虚拟

    虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。比如说虚拟处理器,虚拟内存,虚拟外部设备

  4. 异步

    在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

操作系统最基本的特征是并发和共享,两者互为存在条件。

进程管理

程序基本概念

  • 程序执行的两种方式:
    1. 顺序执行:一个计算的若干操作必须按照严格的先后次序顺序地执行,这类计算过程就是程序的顺序执行过程。
    2. 并发执行:指一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。

进程基本概念

  • 定义

进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。

引入进程的概念,以便更好地描述和控制程序的并发执行。

程序封闭性是指进程执行的结果只取决于进程本身,不会受外界影响。

  • 进程和程序的区别

这里写图片描述

  • 进程的组成

进程通常由程序、数据集合和进程控制块PCB三部分组成。程序和它操作的数据是进程存在的静态实体,而专门的数据结构PCB用来描述进程当前的状态、本身的特性等。

当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存在PCB中的对应位置,进程状态已被改变为其他的值,例如阻塞态或就绪态。

PCB是进程存在的唯一标志。故操作系统是根据进程控制块来对并发执行的进程进行控制和管理。

PCB内含的数据结构主要有:进程标志信息、进程控制信息、进程资源信息、CPU现场信息。

每个进程包含独立的地址空间,进程各自的地址空间是私有的,只有执行自己地址空间中的程序,且只能访问自己地址空间中的数据,相互访问会导致指针的越界错误。

对进程的管理和控制功能是通过执行各种原语实现的,如创建原语。

进程状态

  • 运行态
  • 就绪态
  • 阻塞态
  • 新建态
  • 退出态

进程创建

1、给新进程分配一个唯一的进程标识符

2、给进程分配空间

3、初始化进程控制块

4、设置正确的连接

5、创建或扩充其他数据结构

线程

线程基本概念

引入线程,是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元。

线程共享进程拥有的全部资源。

线程不拥有系统资源,但是它可以访问进程所拥有的系统资源。

线程没有自己独立的地址空间,他共享他所属的进程的空间。

线程的实现方式

  1. 用户级线程
  2. 内核级线程

进程间通信

  • 共享存储
  • 消息传递
  • 管道通信:固定大小,半双工通信,即某一时刻只能单向传输。
  • 共享文件

处理机调度

调度的层次

  1. 作业调度,又称高级调度。就是内存与辅存之间的调度。
  2. 中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当他们具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存。
  3. 进程调度。又称为低级调度。按照某种方法和策略从就绪队列中选取一个进程给CPU。

进程调度方式

  1. 非剥夺调度方式
  2. 剥夺调度方式

典型的调度算法

  1. 先来先服务调度算法(FCFS)

  2. 短作业优先(SJF)调度算法

    从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。

  3. 短进程优先(SPF)调度算法

    从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使之立即执行。

  4. 优先级调度算法

    根据能否抢占进程,可将调度算法分为:

    1. 非剥夺式优先级调度算法
    2. 剥夺式优先级调度算法

    根据进程创建后其优先级是否可以改变,分为:

    1. 静态优先级。优先级在创建进程时确定,且在进程的整个运行期间保持不变。
    2. 动态优先级。可动态调整优先级。
  5. 高响应比优先调度算法

    这里写图片描述

  6. 时间片轮转调度算法

  7. 多级反馈队列调度算法

这里写图片描述

这里写图片描述

进程同步

基本概念

  1. 临界资源

我们把一次仅允许一个进程使用的资源称为临界资源。

  1. 同步

同步亦称直接制约关系,他是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

实现临界区互斥的基本方法

软件实现方法

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

硬件实现方法

  1. 中断屏蔽方法

    当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再进入其临界区访问的最简单方法是禁止一切中断发生。因为CPU只在中断发生时进行进程切换,这样屏蔽中断就能保证当前运行进程将临界区代码顺利地执行完。

  2. 硬件指令方法

    这里写图片描述

    这里写图片描述

信号量

信号量只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作“和”V操作“。

原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。

  1. 利用信号量实现同步

这里写图片描述

  1. 利用信号量实现进程互斥

这里写图片描述

管程

管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。

这里写图片描述

死锁

所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

死锁产生的条件

  • 互斥
  • 不剥夺
  • 请求和保持
  • 循坏等待

死锁的处理策略

  1. 预防死锁

设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。

  1. 避免死锁

在资源的动态分配过程中,用某种方法防止系统进入不安全状态,从而避免死锁。

银行家算法

这里写图片描述

  1. 死锁的检测及解除

通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。

这里写图片描述

内存管理

程序执行过程

这里写图片描述

逻辑地址空间与物理地址空间

这里写图片描述

覆盖与交换

  • 覆盖

这里写图片描述

  • 交换

这里写图片描述

连续分配管理方式

  • 单一连续分配

这里写图片描述

  • 固定分区分配

可以有大小相等的分区和大小不等的分区

会有内部碎片

  • 动态分区分配

会有外部碎片,可以通过紧凑技术来解决(就是操作系统不时地对进程进行移动和整理,需要动态重定位寄存器支持。

这里写图片描述

非连续分配管理方式

  • 分页存储管理
  • 分段存储管理
  • 段页式管理方式

虚拟内存管理

  1. 传统存储管理方式的特征
  • 一次性:作业必须一次性全部装入内存,方能运行。
  • 驻留性:作业被装入内存后,就一直驻留在内存中,其任何部分都不会被换出,直至作业运行结束。
  1. 局部性原理

    • 时间局部性

    如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。

    所以时间局部性是通过将进来使用的指令和数据保存到高速缓存存储器中。

    • 空间局部性

    一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。

    所以空间局部性通常是使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现。

页面置换算法

  1. 最佳置换算法(OPT)

这里写图片描述

  1. 先进先出页面置换算法

这里写图片描述

  1. 最近最久未使用置换算法(LRU)

这里写图片描述

文件系统

文件的概念

文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

在用户进行的输入、输出中,是以文件为基本单位。

文件的属性

  1. 名称
  2. 标识符
  3. 类型
  4. 位置
  5. 大小
  6. 保护
  7. 时间、日期和用户标识

文件的逻辑结构

  1. 无结构文件(流式文件)

无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,他是有序相关信息项的集合,以字节为单位。

  1. 有结构文件(记录式文件)

    1. 顺序文件

    文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储。

    ​ 1. 串结构

    ​ 记录之间的顺序与关键字无关,通常按照存入时间的先后排列。

    ​ 2. 顺序结构

    ​ 指文件中的所有记录按关键字顺序排列。

    1. 索引文件

    2. 索引顺序文件是顺序和索引两种组织形式的结合。索引顺序文件将顺序文件中的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项。

    3. 直接文件或散列文件

      给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址。

目录结构

文件控制块和索引

  1. 文件控制块。FCB用来存放控制文件所需要的各种信息的数据结构。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。

    FCB主要包含以下信息:

    1. 基本信息
    2. 存取控制信息
    3. 使用信息
  2. 索引节点

目录结构

  1. 单级目录结构。整个文件系统中只建立一张目录表,每个文件占一个目录项。
  2. 两级目录结构。将文件目录分为主文件目录和用户文件目录。主文件目录项记录用户名及相应用户文件目录所在的存储位置。用户文件目录项记录该用户文件的FCB信息。
  3. 多级目录结构
  4. 无环图目录结构。引入改种目录结构是为了实现文件共享。

文件共享

  1. 基于索引结点(硬连接):共享文件指向同一个索引结点
  2. 基于符号链(软连接):保存共享文件的路径名

文件保护

  1. 口令保护:通过口令访问文件
  2. 加密保护:对文件进行加密处理
  3. 访问控制:根据访问者的身份进行限制

文件系统层次结构

文件系统类型:FAT32、NTFS、ext2、ext3、ext4

这里写图片描述

目录实现

  1. 线性列表
  2. 哈希表

文件实现

  1. 文件分配方式
    1. 连续分配
    2. 链接分配
    3. 索引分配

这里写图片描述

文件存储器的空间管理

  1. 空闲表法:把所有空闲块组织成表
  2. 空闲链表法:把所有空闲块组织成链表
  3. 位示图:利用二进制的每位记录空闲块
  4. 成组链接:空闲表和空闲链表的结合,适合大的文件系统

磁盘调度算法

  1. FCFS(先来先服务算法)

这里写图片描述

  1. 最短寻找时间优先算法(SSTF)算法

这里写图片描述

  1. 扫描(SCAN)算法(又称电梯算法)

这里写图片描述

  1. 循环扫描(C-SCAN)算法

这里写图片描述

这里写图片描述

这里写图片描述

I/O管理

I/O控制方式

  1. 程序直接控制方式

  2. 中断驱动方式

    允许I/O设备主动打断CPU的允许并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。

  3. DMA方式

    DMA方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU。DMA方式的特点:

    1. 基本单位是数据块
    2. 所传送的数据,是从设备直接送入内存的,或者相反
    3. 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

    这里写图片描述

  4. 通道控制方式

这里写图片描述

这里写图片描述

这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35564813/article/details/80651259

智能推荐

牛客网算法题目-单词接龙题解_省下洗发水钱买书的博客-程序员秘密

文章目录题目描述输入描述输出描述输入输出说明原题算法分析解题标程题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。输入描述输入的第一行为一个单独的整数n(n ≤ 20)表示单词数,以下n行每行有

按概率随机选取_derek881122的博客-程序员秘密

上一篇笔记的pygame游戏对敌人和白云的移动速度使用了随机函数randint(),游戏体验不是太好。如果是按概率随机选取设置速度的话,游戏体验会好一些。据我了解,random.choice(seq)是等概率选取一个,不是我想要的。而 numpy.random.choice(seq, p, k)是按概率随机重复选取多个,这正是我想要的。但是,我不想为这么一个函数引入巨大的numpy库...

使用 docker 搭建jenkins 自动化工具_小毕超的博客-程序员秘密

一、jenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。大家在工作中,应该都有使用过jenkins 自动化打包或发布,就比如我经常用到的就是将开发的项目自动化打包成docker镜像,实现一键打包,大大减少了我们的工作量,下面就一起学习下,jenkins 的安装与使用。二、基于docker 搭建 jenkins本篇使用docker 和 docker-compose 对jenkins进行

2021-09-24多个excel xlsx文件合并成一个CSV文件_xlsx文件合并成csv_weixin_45299323的博客-程序员秘密

把多个excel文件合并成一个文件1、获取文件目录的文件名称和路径2、遍历每个文件读取3、导出合并后csv文件import osimport pandas as pd# 将文件读取出来放一个列表里面pwd = 'D:/Users/Desktop/库存' # 获取文件目录# 新建列表,存放文件名file_list = []# 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件并创建DataFrame)dfs = []for root,dirs,files in os.wal

AssetBundle相关_祝你万事顺利的博客-程序员秘密

1.AssetBundle的定义把一些可以下载的内容放在AssetBundle里面,可以减少安装包的大小压缩包可以使用LZMA和LZ4压缩算法,减少包的大小,更快的进行网络传输什么是AssetBundle?可以称之为压缩包,里面压缩了多个文件。两类:serialized file and resource filesserialized file:资源被打碎放在一个对象中,最后...

斯坦福大学深度学习笔记:神经网络_斯坦福大学开发 深度神经网络_imudges_Zy的博客-程序员秘密

一、神经网络背景神经网络的灵感来源与人的大脑。实验证明大脑利用同一个学习算法实现了听觉、视觉等等所有的功能,这也是神经网络算法美好的愿景。神经网络算法在八十到九十年代被广泛使用过, 20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regress

随便推点

小白学习应用spring-shiro_xcg纸飞机xcg的博客-程序员秘密

spring shiro基础学习下载并简单配置maven注意:配置maven的一些注意事项在eclipse下纯空配置spring简单框架注意:因为Thymeleaf版本问题在建立html页面的时候如果是3,0以下的需要在<meta charset="UTF-8">中加结束语,不过建议进行升级在pom.xml文件下按如下修改<properties> <java.version>1.8</java.version> <thyme

python openpyxl模块,只显示有内容的单元格_worksheet.iter_rows_work-harder的博客-程序员秘密

背景: win8.1, idle ->python 3.9.7自带, openpyxl 3.0.9 openpyxl 由pip install openpyxl直接安装,版本默认现象: 1. 用openpyxl 中 worksheet的 rows属性,可以显示其中单元格的内容。 如果单元格不是从第一行、第一列开始时,在显示内容的循环中,总会有在没有内容的单元格处输出为None。 2. 查询了 worksheet.rows()的使用方法,此函数没有用...

SUN工作站在网络中的深入应用(转)_ciya3282的博客-程序员秘密

SUN工作站在网络中的深入应用(转)[@[email protected]]  目前建立在客户机/服务器(C/S)网络体系结构上的应用系统越来越多,技术上也越来越成熟。具有多用户多任务网络特性的UNIX操作系统以其高可靠性、高伸缩性、高开放性的特点...

蚂蚁金服CTO鲁肃:支付宝成就了我,我做了很多“拧螺丝”的事儿_weixin_34245082的博客-程序员秘密

他被誉为支付宝技术平台的奠基人之一,但是他却说“这还不是我心中最完美的架构”;他曾是支付宝史上最危机关头——停机发布 17 小时的救火大队长,但是在他看来,只是做了很多”拧螺丝“的事情。他行事低调但是却信奉“此时此地,非我莫属”的豪气;他在支付宝有着灿烂无比的职业履历却仅仅认为自己是没有掉队的那个人。他是程立(鲁肃),是我们本季《十年》技术专题纪录片...

使用STM32固件库开发GD32 汇总_gd32库函数_nepqiu的博客-程序员秘密

文章目录GD32与STM32异同1. 相同点2. 外围硬件区别3. 内部结构差别4. 功耗区别(以128k以下容量的作为参考)5. 内部FLASH 区别使用STM32库开发时钟配置区别1. 晶振起振区别描述解决方法2. 部分客户使用有源晶振出现问题,在 GD32F103 小容量产品,发现会在 MCU 的复 位管脚一直把电平拉到0.89V,电平不能保持在高电平描述解决方法3. GD32 MCU 主频支持 108MHz 高性能,在代码移植方面需要注意事项1. 以72MHz运行2. 以108MHz运行(方法一)原

推荐文章

热门文章

相关标签