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

news2024/11/19 20:36:19

目录

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.分页、分段存储管理的地址转换过程

懒得打字,我看我的笔记

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 系统多级混合(增量式)索引结构

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

(1)空闲表

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

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

(2)位示图

0——空闲

1——已分配

字长n

盘块号b=ni+j

位号(行号)i: b%n

字号(列好)j:b/n

(3)空闲块链法

空闲盘区链

空闲盘块链

成组链接法

26.系统调用的过程


①传递系统调用系数;

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

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

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

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


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

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

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

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

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

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

相关文章

Android Studio开发之路 (一)开发环境搭建以及问题记录

一、安装 Android Studio 安装配置教程 这个文章讲的很全面(包括了jdk的配置),我安装了1.8.0版本的JDK 以及 2022.2.1版本的Android Studio ,安装目录都是自定义的,安装完成之后的目录如下(项目目录也放到这里了&…

医院上线“报告中心”,实现报告查询“四个更好”

为进一步提升患者的就诊体验,不少医院部署云影像后,再次上线博为软件报告中心信息系统,患者和家属动动手指就能在自己手机上随时随地看到检查检验报告,彻底告别传统的纸质报告单方式,实现检查检验数据永久保存。 博为…

【Java多线程编程】wait与notify方法详解

前言 我们知道,线程的调度是无序的,但有些情况要求线程的执行是有序的。因此,我们可以使用 wait() 方法来使线程执行有序。 本期讲解 Java 多线程中 synchronized 锁配套使用的 wait 方法、notify方法和notifyAll方法,以及 wait 方…

jQuery 操作 DOM 及 CSS

jQuery 操作 DOM 及 CSS 1. jQuery 修改|获取页面元素文本及属性值 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标签) val() - 设置或返回表单字段的值 attr() - 方法用于获取属性值。 1.1 举例&#xff…

win11亮度条消失解决方法之一

一、前言 1、本人电脑情况:联想小新Pro16,win11家庭版 2、联想技术工程师三种方式联系方式(需提供电脑背后的编号): 1) 通过预装的联想电脑管家,获取在线人工专家支持(管家链接 h…

【ETH】以太网----PHY芯片LAN8720A----电路原理图

一、LAN8720A----简介 LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片,I/0 引脚电压符合EEE802.3-2005 标准,支持通过 RMI 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模块,支持 10Mbps 和 100Mbps。 LAN87…

SpringMVC的请求与响应(请求映射路径、请求参数、日期类型参数传递 、响应json数据)

文章目录 1,PostMan工具的使用1.1 PostMan简介1.2 PostMan安装1.3 PostMan使用1.3.1 创建WorkSpace工作空间1.3.2 发送请求1.3.3 保存当前请求 2,请求与响应2.1 设置请求映射路径2.1.1 环境准备2.1.2 问题分析2.1.3 设置映射路径步骤1:修改Controller步骤…

Java基础面试题突击系列2

👩🏻 作者:一只IT攻城狮 ,关注我不迷路 ❤️《java面试核心知识》突击系列,持续更新… 💐 面试必知必会学习路线:Java技术栈面试系列SpringCloud项目实战学习路线 📝再小的收获*365天…

以ChatGPT写诗为例,教你如何用AI软件创新性提问?

想用AI软件创作出动人的诗篇吗? ChatGPT 是一款人工智能软件,可以帮助你创作鼓舞人心的诗歌。它为您提供了一个强大的平台来探索您的创意方面。通过一组简单的问题,您只需点击几下就可以生成令人惊叹的诗歌。 要想让机器写诗,你…

低代码开发——进最热的赛道,啃最硬的骨头

你开足马力提了一串需求,需要招聘IOS和Android工程师、前端测试,PM等人员共同完成;这意味着开发者坐下来一行一行的敲击,并不断测试修改直到上线。 这个过程短则半年,长则数年,才会给到你一个满意的产品。…

基于 Web 的作物生长监控系统的

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本毕业设计在对 A 基地进行调研的基础上。设计并开发了一套基于 Web 的作物生长监控系统,该系统由软件和硬件两部分组成。硬件部分采用了已开发好的多点温湿度采集系统,软件部分采用 Java 开发语言、HT…

回应小伙伴们的咨询,5款好用的小软件

最近陆陆续续收到好多小伙伴的咨询,这边也是抓紧时间整理出几个好用的软件,希望可以帮到大家。 1.RSS阅读器——Tabby Tabby是一款简洁美观的RSS阅读器。它可以自动抓取并订阅你喜欢的博客和网站更新。这个工具拥有简洁的界面和强大的功能,可以过滤和分…

零信任---ZTN

零信任是一种以身份为中心的新一代网络安全防护理念,通过持续的身份认证、环境状态采集、持续信任评估、动态访问控制,并遵循最小权限原则,实现在不可信网络中构筑可信的访问通道。 传统场景中,企业的安全都是在以防火墙为边界的。…

WhatsApp Business 多人使用终极指南

今时今日,几乎每个人的手机上都安装了 WhatsApp,不少电商更会依赖 WhatsApp作为和客户沟通的主要渠道。但对有一定规模的店铺来说,WhatsApp绑定一个号码和设备的设定实在很不方便。如何才能用WhatsApp Business批量处理客户查询呢&#xff1f…

Linux下安装MySQL8

一、安装MySQL8 1、下载 官网:https://dev.mysql.com/downloads/mysql/ 服务器wget下载 cd /data wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle 2、解压 tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar 3、…

十进制转二进制/八进制/十六进制

首先,我们有一个十进制的数字**(21)D**,其他博主都是用除法来算,如果数字小还能适用,如果数字大,就不适用了 以下是我的方法: 十进制转二进制: 通过上图我们可以得到(21)D的二进制为(10101)B&…

【C++】STL——容器适配器 stack和queue 深度剖析及模拟实现

文章目录 1. stack的介绍及使用1.1 stack的介绍1.2 stack的使用 2. stack的模拟实现2.1 适配器模式的了解2.2 结构2.3 成员函数 3. queue的介绍及使用3.1 queue的介绍3.2 queue的使用 4. queue的模拟实现5. STL标准库中stack和queue的底层结构6. deque的简单介绍(了解)6.1 dequ…

Linux安装GitLab

一、摘要 公司经常用Gitlab做为代码仓库,这里我也安装下Gitlab,为后面CI/CD集成打下基础,官方安装地址:https://about.gitlab.com/install/#centos-7。不过官网很多人说比较坑,这里就不用官方方法安装了。 二…

在职字节,一个8年软件测试工程师的学习经历

简单的先说一下,坐标北京,15届本科毕业,算上年前在字节跳动的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…

ChatGPT:DevSecOps 落地实践的最后一公里

DevSecOps 背后的三个逻辑 复杂性:让安全从 “幕后” 走向 “台前” 安全并不是一个新鲜的话题,自软件诞生以来,安全就一路伴随,但是近几年安全似乎又到了一个新的 “热度” 与 “高度”。 一些企业、组织都在探讨软件供应链安全…