熊哥保佑你 操作系统复习

news/2024/12/1 0:33:02/

磁盘调度:

主要作用:减少平均寻道时间
FCFS:先来先服务
SSTF:最短寻道优先(有可能造饥饿,一部分在一段时间未被访问)
SCAN:扫描/电梯(按当前方向进行)
C-SCAN:循环扫描按(当前方向进行)

.

软链接和硬链接:

设文件F1的当前引用计数值为1,先建立文件F1的符号链接(软链接)文件F2,再建立文件F1的硬链接文件F3,然后删除文件F1。此时,文件F2和文件F3的引用计数值分別是?
答案:1,1
解析:创建F2和F3时,F2和F3的计数器各加一,此时都是2。删除F1时,F2和F3的计时器都减一,最终F2和F3的计时器的值都为1。

.
饥饿(starvation)是指某个进程或线程由于长时间等待系统资源而无法执行或执行效率极低的状态。

.

动态分区匹配算法:

  • 首次适应算法(First Fit)FF :找第一块满足的,从低址(首地址)开始
  • 循环 / 邻近适应算法(Next Fit)NF :从上一块满足的往后找,从低址(首地址)开始,不断循环
  • 最佳适应(Best Fit)BF :找最接近且满足的
  • 最坏适应(Worse Fit)WF :找空闲区最大的

不管是什么算法,都是从低地址开始放:
在这里插入图片描述

.
单缓冲区:
T:外设 -> 缓冲区
M:缓冲区 -> 用户区
C:CPU 处理的时间(此时,缓冲区为空,也就是说:可以并行新的 T 操作)
处理顺序:T -> M -> C
处理时间:Max(T,C)+ M
在这里插入图片描述
双缓冲区:
T < C + M:
在这里插入图片描述
T > C + M:
在这里插入图片描述
总结:
在这里插入图片描述
单缓冲区:
在这里插入图片描述
双缓冲区:
在这里插入图片描述

.

用户态到内存态:

在这里插入图片描述
把 addr 处的内存数据放入寄存器 R0 中,当 addr 不存在时,会导致缺页异常

单处理机,并行与并发

并行:一块执行
并发:宏观上一块执行,微观上存在先后顺序

单核处理器:一次可以执行一次操作,多核处理器一次可以执行多个操作

处理机、设备、通道 两两之间可以相互并行
处理机和通道都是CPU资源

I/O系统的层次结构

在这里插入图片描述

系统调用,脱机命令接口之批处理

在记事本中写入:

ren *.txt *.bat

代码含义:将所有改记事本文件所在目录的所有 .txt 文件改为 .bat
然后将该记事本后缀改成 .bat 形成批处理文件

系统调用

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

信号量

当信号量大于零时,说明我没有等待资源的进程

临界区:在临界区内访问共享资源,并执行操作,一定程度上可以与信号量的数量化等号

最佳置换算法

找最晚要访问的(最右边)

当系统发生抖动时,可采取的有效措施是:撤销部分进程,目的是增加空闲物理块

编译,链接,装载

在这里插入图片描述

虚拟存储器,连续分配与非连续分配

连续分配:单一连续、固定分区、动态分区;一次调入在内存中驻留,不会被换出
非连续分配:分多次调入内存,内存中会被换出;分页、分段、段页式、请求分页、请求分段、请求段页式
其中 请求分页、请求分段、请求段页式 说明虚拟存储器对应的分配方式

虚拟存储容量 最大容量:32位 或 64位 实际存储容量 =min(外存+内存,32位或64位)

系统调用

所有的系统调用都会导致CPU从用户态切换到核心态
只有open参数才包含文件的名称

进程、线程

进程:资源分配的基本单位
线程:调度的基本单位

系统是可以不支持线程的

同一进程的不同线程拥有的都是同一个进程的地址空间在这里插入图片描述
在这里插入图片描述

银行家算法

目的是避免死锁
在这里插入图片描述

位示图法

每行一个字,每行多个块
块被占用时置 1,未占用置 0

文件区和交换区

在这里插入图片描述
不够的第二种情况是:在外存修改地址,也通过交换区调入内存
能加快虚实地址转换的是:增大块表(TLB)容量、让页表常驻内存、

管道(pipe)通信系统

管道相当于一个共享文件,存在于内存中
管道是半双工,并且读的时候不能写,写的时候不能读,所以在读或写的时候都可能被阻塞;一个管道只能有一个读进程和多个写进程
半双工:可以相互传输数据,但不能同时传输
在这里插入图片描述
双向数据传输:一般指双方同时向对方传输数据

多级页表

多级页表可以减少页表所占的连续内存空间,有助于减少实现进程的虚拟空间所需的页表大小

翻译后备缓存(TLB)

TLB是一种高速缓存,用于缓存最常用的页表项

执行态、就绪态、阻塞态

从执行态变为就绪态:

  1. 时间片用完
  2. 被高优先级进程抢占

从执行态到阻塞态:
申请资源

磁盘缓冲区

减少磁盘I/O次数

磁盘容错技术:提高磁盘数据可靠性

设备独立性软件:实现设备无关性

请求分页内存分配策略

在这里插入图片描述
固定分配没有全局置换

中断

中断技术使得多道批处理系统和I/O设备可与CPU并行工作

关中断:不允许中断

分时系统

分时系统允许多个用户与计算机直接交互

批处理系统

批处理系统允许多个用户与计算机间接交互;作业运行时不能被干预,只能事先通过作业控制说明书间接操作作业

死锁

判断是否死锁只有通过化简资源分配图,银行家算法是判断不了死锁的,银行家算法只能判断当前系统是否处于安全状态,即使处于不安全状态也不代表死锁发生,不安全状态还是可能转回安全状态的,注意不安全状态和死锁不一样。
死锁的预防可以保证系统不会发生死锁。

改进型clock置换算法

在这里插入图片描述

让权等待

代码while(ture)循环时,不满足让权等待,同时,等待进入临界区的进程不会主动放弃CPU

异常

段缺失异常:段不在内存中
越界异常:地址不在段长范围内
越权异常:例如:只读权限却要进行修改

互斥

需要互斥执行的操作:对同一可变量进行修改

同步机制

在这里插入图片描述

管程

管程是由编程语言支持的进程同步机制
任何时候只能有一个进程在管程中执行
管程中定义的变量只能被管程内的过程访问


http://www.ppmy.cn/news/590592.html

相关文章

DOTA-Acrylamide,DOTA-DBCO,DOTA-MeTz,三者DOTA双功能螯合剂信息说明总结

今天小编分享DOTA螯合剂试剂&#xff1a;它们分别是DOTA-Acrylamide&#xff0c;DOTA-DBCO&#xff0c;DOTA-MeTz&#xff0c;今天整体分享一下相关的知识&#xff0c;一起看看吧。 &#xff08;文章编辑来源于&#xff1a;西安凯新生物科技有限公司小编WMJ&#xff09; 一、D…

React写法——使用js高阶函数实现多条件搜索功能

&#x1f642;博主&#xff1a;爱学习的Akali king &#x1f642;本文核心&#xff1a;React写法——使用js高阶函数实现多条件搜索功能 目录 思考一下代码是什么&#xff1f;你如何看待编程语言&#xff1f;用react写法来实现&#xff0c;思路步骤&#xff1a;第一步&#x…

wait语句

wait语句 wait语句是一种不可综合的电平触发事件控制语句&#xff0c;有如下两种形式&#xff1a; wait(条件表达式) 语句/语句块; wait(条件表达式); 对于第一种形式&#xff0c;语句块可以是串行块&#xff08;begin…end&#xff09;或并行块&#xff08;fork…join&#…

server is DOWN now, please try again later!

单机启动nacos服务后&#xff0c;服务注册出现以下异常&#xff1a; server is DOWN now, please try again later!使用以下url访问&#xff0c;也出现同样错误&#xff1a; http://192.168.1.218:8848/nacos/v1/ns/instance/beat解决办法&#xff1a; 删除data目录下的prot…

打开PDF时显示please wait...怎么办?没有安装pdf阅读器经常出现的提示信息

打开PDF文件时&#xff0c;提示如下信息 原因&#xff1a;不是用pdf阅读器打开PDF文件导致的。 解决方法&#xff1a;安装pdf阅读器&#xff0c;安装后&#xff0c;右键pdf文件把默认打开方式修改为pdf文件。 详细操作&#xff0c;请参考https://jingyan.baidu.com/article/b2…

StandardServer.await: Invalid command 'GET /setting/webSocket HTTP/1.1' rece

今天跑项目&#xff0c;无意间发现访问时会报 &#xfeff;&#xfeff; StandardServer.await: Invalid command GET /setting/webSocket HTTP/1.1 rece错误&#xff0c;最后得知是端口冲突&#xff0c;我用的是8005&#xff0c;而系统默认的shutdown端口也是8005&#xff0c;…

Your push would publish a private email address

使用git push 的时候报错&#xff1a; remote: error: GE007: Your push would publish a private email address. remote: You can make your email public or disable this protection by visiting: 原因居然是&#xff1a;在gitee设置邮箱管理的时候没注意&#xf…

wait命令

wait命令&#xff1a;概念&#xff1a;阻塞当前进程的执行&#xff0c;直到指定的子进程结束后&#xff0c;当前线程才会继续执行。格式&#xff1a;wait [进程号]常用&#xff1a;wait在shell中直接使用wait&#xff1a; 等待所有的子进程结束后&#xff0c;当前进程才继续往下…