2023 操作系统 R 复习大纲( 适用于太理软件 21 级)

news2024/11/26 11:49:01

目录

01.操作系统的定义

02.操作系统的基本类型及特征

1.批处理操作系统(单、多道)

2.分时操作系统

3.实时操作系统

03.操作系统的功能及特征

04.进程的定义、特征

05.进程基本状态及其转换原因

06.进程互斥、同步

07.进程控制块的内容、作用

08.用信号量和 PV 操作机制实现进程的同步和互斥

09.引入进程,线程的目的

10.典型的调度算法

(1)先来先服务(FCFS):

 (2)短者优先(SJF) :

(3)高响应比优先(HRRN):

(4)优先级调度:

(5)时间片轮转调度(RR):

(6)多级反馈队列调度:

11.死锁的原因、必要条件

12.预防死锁方法、避免死锁

13.连续分配原理和特点

①单一连续分配:

②固定分区分配:

③动态(可变)分区分配:

14.页式、段式存储管理原理

15.分页、分段存储管理的地址转换过程

16.虚拟存储器概念、理论基础

17.页面置换算法

(1)最佳置换算法:

(2)先进先出置换算法

(3)最近最久未使用置换算法

(4)时钟置换算法

(5)改进型时钟置换算法

18.存储管理的碎片问题

19.设备分配时应考虑的因素

20.设备独立性、虚拟设备

21.磁盘的调度算法

22.打开文件、关闭文件的操作

23.文件的物理结构

(1)连续分配

(2)链接分配

(3)索引分配

24.UNIX 系统多级混合(增量式)索引结构

25.文件存储空间的管理方法-空闲表法、位示图、空闲块链法

26.系统调用的过程

27.系统调用与一般过程调用的区别


01.操作系统的定义


操作系统是计算机系统中的一个(系统软件),它管理和控制计算机系统中的(硬件和
软件资源)。


02.操作系统的基本类型及特征

1.批处理操作系统(单、多道)

      允许多个用户将多个作业提交给计算机集中处理的操作系统称为(批处理操作系统)

优缺点:

  • 系统利用率高、系统吞吐量大

  • 平均周转时间长、无交互能力

(平均周转时间短)是批处理操作系统中进程调度算法的重要准则

2.分时操作系统

      允许多个用户以交互方式使用计算机的操作系统称为(分时操作系统)

特点:

  • 交互性、多路性、独立性、及时性

优点:

  • 为用户提供友好的接口,即用户能在较短时间内得到响应。

  • 便于资源共享和交换信息,为软件开发和工程设计提供良好的环境。

通常在分时系统中运行的作业称为 终端型作业

(响应时间快)是分时系统中进程调度算法的重要准则

3.实时操作系统

     计算机系统能及时处理过程,控制数据,并作出响应的操作系统称为(实时操作系统)

特点:

  • 两个基本特征,(及时性)和(高可靠性)

( 截止时间的保证 )是实时调度算法的重要准则

03.操作系统的功能及特征


操作系统的功能:

①作为用户与计算机硬件系统之间的接口;                                                                                     

②作为计算机系统资源的管理者;

③实现了对计算机资源的抽象。

操作系统的特征:并发性、共享性(最基本的特征)、虚拟性和异步性。


04.进程的定义、特征


进程的定义:是一个程序对某个数据集在处理机上的执行过程,是系统进行资源分配和处理机调度的基本单位。

进程的特征:动态性(最基本的特征),并发性,独立性,异步性,(结构性)。

05.进程基本状态及其转换原因

06.进程互斥、同步


同步指进程间存在一定的逻辑关系,需要在执行次序上协调

互斥指进程间在使用共享资源方面的约束关系

解决上述两个问题的一种常用的方法是(信号量机制)

原则:空闲让进,忙则等待,有限等待,让权等待

07.进程控制块的内容、作用


PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构

作用是使程序成为一个独立运行的基本单位,能与其他进程并发执行的进程。

并对并发执行的进程进行控制管理

08.用信号量和 PV 操作机制实现进程的同步和互斥

互斥:

互斥信号量的初值一般为 1

同步:

而同步信号量的初值应视具体情况而定,这里为0 (前V后P,P2等P1)

 

 拓展:单道程序系统不具有并发性,因此不需要同步和互斥

举例(多生产者消费者问题):

父,子,女,吃苹果,橘子问题,儿子只吃橘子,女儿只吃苹果,爸爸一次盘子里放一个

分析:生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品

int S=1;
int Sa=0;
int So=0;
main( )
{
  cobegin
  father();
  son();
  daughter();
  coend
}

father()
{
  while(1)
   {
     P(S );
     将水果放入盘中;
     if (放入的是桔子) V(So);
     else V(Sa);
   }  
}

son( )
{
  while(1)
   {
     P(So);
     从盘中取出桔子;
     V(S);
     吃桔子;
   }
}

daughter( )
{
  while(1)
   {
     P(Sa);
     从盘中取出苹果;
     V(S);
     吃苹果;
   }
}

09.引入进程,线程的目的

引入进程:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述

引入线程:缩短系统切换的时空开销,提高程序执行并发度

10.典型的调度算法

进程的调度方式有两种,一种是(非抢占式),令一种是(抢占式)


(1)先来先服务(FCFS):

算法简单,效率低

利于长作业不利于短作业

利于CPU繁忙型,不利于I/O繁忙型作业

 (2)短者优先(SJF) :

为了使作业的平均周转时间最短

为了照顾短作业用户

平均等待时间,平均周转时间最少

对长作业不利

估计运行时间可能不准确

(3)高响应比优先(HRRN):

为了兼顾短作业和长时等待的作业

响应比=(等待时间+要求服务时间)/要求服务时间

利于短作业,且长作业不至于产生饥饿

等待时间越长,优先级越高

(4)优先级调度:

为了照顾紧急作业的用户:基于优先权的可抢占式调度算法

总之谁优先级高谁上

抢占式,非抢占式;动态优先级,静态优先级

(5)时间片轮转调度(RR):

为能实现人机交互作用

时间片过高:交互性差;时间片过低:系统开销大

时间片轮转调度算法遍退化为( 先来先服务 )算法

(6)多级反馈队列调度:

为了使短作业、长作业及交互作业用户都比较满意

对于终端型作业用户:由于多为交互型小作业,短作业优先

对于短批处理作业用户:周转时间短

对于长批处理作业用户:不会长期得不到处理

11.死锁的原因、必要条件

死锁产生根本原因:可共享资源不足,另一个基本原因是:进程的推进顺序不当

死锁存在的必要条件:①互斥;②不可剥夺;③请求和保持;④循环等待

拓展:安全状态无死锁,非安全状态可能死锁

12.预防死锁方法、避免死锁

预防:

破坏互斥——spooling算法

破坏不可剥夺——优先级调度

破坏请求和保持——静态分配法

破坏循环等待——顺序资源分配法

避免:

银行家算法

当一个进程提出的资源请求将导致系统从( 安全状态 )进入(不安全状态)时,系统就会拒绝它的资源请求

13.连续分配原理和特点

①单一连续分配:

使用这种内存分配方式,内存空间会被分成 系统区 和 用户区 两部分,系统区仅提供给OS使用,系统区外的用户区提供给用户使用。

优:实现简单,无外部碎片

缺:只适用于 单道程序 的情况,存储器利用率低,有内部碎片

②固定分区分配:

将用户空间划分为若干个固定大小的分区,每个分区只能装入一道作业

若分区大小相等:缺乏灵活性,适用于一台计算机控制多个相同对象的情况

若分区大小不等:增加灵活性

优:实现简单,无外部碎片

缺:会产生内部碎片

③动态(可变)分区分配:

根据进程大小动态的建立分区

常用的数据结构:空闲分区链,空闲分区表

支持多道程序,相邻空间需要合并

没有内部碎片但有外部碎片

拓:动态分区分配算法

(1)首次适应算法

从头到尾适应分区

优:综合性能最好,算法开销小,不需要重排序分区

(2)最佳适应算法

优先使用小分区

优:利于满足大进程

缺:小碎片多,算法开销大

(3)最坏适应算法

优先使用大分区

优:产生小碎片少

(4)邻近适应算法

由首次适应算法演变,每次从上次查找结束位置开始查找

优:算法开销小

缺:会使高地址的大分区也被用完

14.页式、段式存储管理原理

分页式:页面+页框

每个进程对应一个页表

物理单位,用户不可见,一维的,不会产生外部碎片,容易实现信息共享

分段式:段号+段内地址

逻辑单位,用户可见,二维的,会产生外部碎片,容易实现信息保护


15.分页、分段存储管理的地址转换过程

分页:

(1)页号=逻辑地址/页面大小   ;页内偏移量=逻辑地址%页面大小

(2)比较页号和页表页表长度,若大于等于,则越界中断

(3)物理地址=页面大小*物理块号+页内偏移量

(物理块号一般一般题目中会和页号一一对应给出)

分段:

(一般会给一个表,由段号,内存始址,段长)(给一个逻辑地址(段号X,段内地址Y))

(1)由表数,得出段表长度

(2)对比段号和段表长度,若大于等于,则越界中断

(3)对比段内地址和段长,若大于等于,则越界中断

(5)物理地址=段号对应的内存始址+页内地址

16.虚拟存储器概念、理论基础

定义:在具有层次结构存储器的 计算机系统 中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“ 主存储器 ”

实现虚拟存储器需要 请求分页(段)的页(段)表机制,缺页(段)中断机制,地址变换机构这三个硬件支持
虚拟存储器的最大容量 由计算机的地址结构决定

实现虚拟存储器的目的是 扩充内存容量

理论基础:程序的局部性理论

虚拟内存:页面置换,请求调页

多次性(基本),对换性,虚拟性

17.页面置换算法

为保证最低的缺页率

(1)最佳置换算法:

理想型,无法实现

(2)先进先出置换算法

会产生bleady异常(内存块越大,缺页率越高)

(3)最近最久未使用置换算法

最接近最佳置换算法,性能好,但是开销大

(4)时钟置换算法

访问位为1:最近访问过

访问位为0:最近未访问过

最多经历两轮扫描

(5)改进型时钟置换算法

18.存储管理的碎片问题

单一连续分配:有内部碎片

固定分区分配:有内部碎片

动态分区分配:有外部碎片

分页式存储管理:有内部碎片

段页式存储管理:有内部碎片

分段式存储管理:有外部碎片

19.设备分配时应考虑的因素

设备固有属性

设备分配算法

设备分配的安全性

设备独立性

20.设备独立性、虚拟设备

设备独立性的概念:用户进程独立于具体使用的物理设备。(进程只需用逻辑设备名称请求使用某类设备。)

优:设备分配时的灵活性,易于实现I/O重定向

虚拟设备

为了方便我们管理设备的 I/O 操作

 虚拟设备是通过(SPOOLING)技术把(独占)设备变为能为若干个用户(共享)的设
备。

SPOOLING组成:

(1) 输入井和输出井
(2) 输入缓冲区和输出缓冲区
(3) 输入进程和输出进程
(4) 井管理程序

21.磁盘的调度算法


先来先服务(FCFS)

最短寻找时间优先(SSFS 会“饥饿”)

扫描算法(电梯调度算法 SCAN)

循环扫描算法(C-SCAN)

22.打开文件、关闭文件的操作

打开:建立用户和文件的联系,将待访回文件的目录信息读入内存活动文件表中

关闭:把内容写到文件目录项,撤销主存中有关该文件的目录信息,切断用户与该文件的联系
 

23.文件的物理结构

(1)连续分配

(逻辑块号,块内地址)—起始块号+块数—>(物理快号,块内地址)

  物理块号=起始块号+逻辑块号

优:支持顺序访问和随机访问

缺:不方便文件拓展,存储空间利用率低,会产生磁盘碎片

(2)链接分配

隐式链接:

优:方便拓展,不会有碎片问题

缺:只能顺序访问,不能随机访问;查找i块需要访问i+1次,效率低

显式链接:

把指针存放到一张文件分配表(FAT)中(末尾指向-1)

优:支持顺序和随机访问,块号转换不需要磁盘,访问速度开,无碎片问题

(3)索引分配

索引表存放的磁盘块:索引块

文件数据存放的磁盘块:数据块

链接方案:低效

多层索引:各索引表大小不能超过一个磁盘块

K层索引需要K+1次I/O操作

混合索引:几几索引指向几层索引表

24.UNIX 系统多级混合(增量式)索引结构

增量式混合索引结构在索引节点中用13 个地址项表示,其中有10个直接地址,1个一次间接地址,1个三次间接地址。

25.文件存储空间的管理方法-空闲表法、位示图、空闲块链法

(1)空闲表

记录空闲块号和空闲块的数目

分配:首次适应和最佳适应算法

(2)位示图

0——空闲

1——已分配

字长n

盘块号b=ni+j

位号(行号)i: b%n

字号(列好)j:b/n

(3)空闲块链法

空闲盘区链

空闲盘块链

成组链接法

26.系统调用的过程


①传递系统调用系数;

②执行陷入指令(用户态);

③执行相应的服务程序(系统
态);

④返回应用程序(用户态)

27.系统调用与一般过程调用的区别


运行状态:系统调用主调程序为用户态,被调程序为系统态   一般调用两者在同一态

状态切换:系统调用通过软过程中断,一般调用不切换

返回问题:系统调用可调度,一般调用不调度

嵌套调用:系统调用限制,一般调用不限制

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

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

相关文章

Java数据类型之整数类型与浮点数

标识符(名字) 作用域 离其最近的大括号 { } !!! 数据类型的分类 赋值时,不可超过数据类型的范围(不可越界) 常量的进制转换 tips:给变量赋值时,值可以为不同…

从代码层面理解Transformer

跑通 代码使用的是 https://github.com/jadore801120/attention-is-all-you-need-pytorch, commit-id 为: 132907d 各模块粗览 Transformer 主要包括一堆参数, 以及encoder和decoder forward的时候主要做了如下操作. 先 pad_mask过encoder过decoder输出logit 从train.py …

C语言-【指针一】-【什么是指针/指针类型】

对于初学者来说,是不是一提到指针,大家就头疼啊,哈哈哈,当然,它都这么“吓人”了,那么在C语言中扮演的角色也很重要,当然,它也是C语言中的一个特色,如果我们把它拿下的话…

ESP32CAM,点亮一个LED(Arduino平台)

前言 (1)在此,吐槽一下乐鑫的函数介绍,真的难找。恶心的一批。气死我了。 (2)接下来我将会介绍我是如何找到ESP32的Arduino平台的函数库的。你将会知道为啥我这么大的戾气。 (3)同时…

linux系统中输入与输出重定向

什么是输入输出重定向 我们在日常工作中最常用的是输出重定向,输出重定向就是将原本要打印到屏幕中的信息重定向到一个文件中。而输入重定向呢就是指把文件导入到命令中去,听起来是不是有点抽象啊,后面看博主举例说明就很好理由啦。 输出重定…

通讯录信息管理系统

系列文章 任务50 通讯录信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试插入按编号查找按姓名查找按城市查找更新排序浏览删除统计…

超好玩C++控制台打飞机小游戏,附源码

我终于决定还是把这个放出来。 视频在这:https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停,建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss(上面视频2分47秒)。 挺好…

轻松转换CAJ文件为PDF格式:免费工具和技巧

在处理中国知网(CNKI)数据库中的CAJ文件时,将其转换为更常用的PDF格式可以提供更广泛的共享和便捷的阅读体验。本文将介绍一种免费的工具和一些技巧,帮助您轻松地将CAJ文件转换为PDF格式。我们将使用记灵在线工具进行操作。 记灵…

推荐几本提高程序员职业素养的书

如果你是一名程序员,想要提长自己,那么这几本书推荐给你。 1、好代码 ,坏代码 为了写出优良的代码,我们必须对手上的方案有合理的判断,并彻底想清楚特定方法的结果(好的和坏的)。为此&#xff…

F检验.医学统计实例详解

F检验是一种重要的医学统计方法,常用于检验两个或多个样本的方差是否相等,也被称为方差齐性检验。方差齐性检验是医学研究中的基本方法,因为许多重要的统计分析都要求样本方差相等,如方差分析、t检验等。以下将介绍F检验的基本原理…

简单上手Scrapy框架

创建一个Scrapy框架的爬虫程序 安装Scrapy库,直接通过pycharm搜索Scrapy进行安装即可 在终端执行 scrapy startproject 项目名 scrapy startproject Learn 示例 即可创建名为Learn的Scrapy程序,成功创建项目后,会已项目名称创建一个文件夹&…

FTP和SSH连接远程终端Ubuntu

安装好ubuntu后是默认没有ssh服务和ftp服务的,我们需要自己解决一下这个问题 SSH 更新软件列表和软件 sudo apt-get update sudo apt-get upgrade安装ssh sudo apt-get install ssh启动ssh服务 sudo /etc/init.d/ssh start修改ssh服务配置文件 sudo vim /etc/…

前端工程化:发布一个属于自己的规范 npm 包

初始化项目 首先在github创建一个仓库,协议选择MIT,gitignore选择Node,添加README.md描述文件。使用git clone将项目克隆到本地。cd 进入目录,使用vscode打开(终端输入code . 命令即可)。 然后创建一个合理…

CentOS-7 安装 MariaDB-10.8

一、安装之前删除已存在的 Mysql/MariaDB 1 查找存在的 MariaDB # 注意大小写 rpm -qa | grep MariaDB # rpm -qa 列出所有被安装的rpm package (-qa:query all) rpm -qa | grep mariadb # grep (缩写来自Globally search a Regular Expre…

C++ 折叠参数包:悄然增强编程效率

前言 欢迎来到💖小K💖的💞C专栏💞,本节将为大家带来折叠参数包的详细讲解,折叠参数包为C模板编程提供了更加灵活和强大的工具,可以提高代码的简洁性和可读性,看完后希望对你有收获 文…

室内外融合定位UWB信标定位方案

大家好,我是北京华星智控公司小智,今天我给大家介绍室内外融合定位系统方案,该方案室外采用北斗卫星定位技术室内采用UWB定位技术从而实现室内外精确定位无缝切换,实现室内外的融合定位。 室内外融合定位系统, 该方案…

Binder相关问题

Binder相关问题 1、Binder是什么?2、Binder有什么优势?3、Binder如何做到一次拷贝的?4、MMAP的原理是什么?5、Binder机制是如何跨进程的?6、为什么Intent不能传递大数据7、AIDL生成Java类细节8、四大组件底层的通信机制…

波奇学Linux:yum和vim

Linux三种安装方式 源代码安装 用户下载->软件源码->源码编译->可执行程序 rpm安装:相当于去官网下载Linux安装包 可能存在依赖项不匹配问题。 yum安装包 用户yum下载->软件安装包->可执行程序 yum是软件包管理器,解决安装源&…

玩客云刷Armbian带docker详细教程(附所有软件)

文章目录 介绍一.准备工作1.硬件准备2.软件准备 二.开始折腾1.烧录系统固件2.刷入系统1.准备镜像2.刷入镜像3.刷入镜像到系统 三.功能介绍1.网页终端2.设备状态3.AriaNg4.qBittorrent5.微力同步6.filebrowser7.Portainer 四.拓展1.添加Alist1.介绍2.安装3.配置3.1查看密码3.2修…

chatgpt赋能Python-pythoncidere

PythonCider:提供最优质的 Python 编程知识 Python 是目前最受欢迎的编程语言之一,特别在数据科学和人工智能方面应用广泛。如果你是一名 Python 开发者或者正在学习 Python 编程,PythonCider 是一个你绝对不能错过的网站。 什么是 PythonC…