【操作系统复习资料】(持续更新中)

目录

第一章:操作系统引论

第二章:进程的描述与控制

未完待续。。。。。接

第三章:处理机调度与死锁

第四章:存储器管理

第五章:虚拟存储器

第六章:第八节 磁盘存储器的性能和调度


第一章:操作系统引论

操作系统的目标:方便性、有效性、可扩充性、开放性

操作系统的三个作用:

(1)操作系统(OS)作为用户与计算机硬件系统之间的接口

(2)操作系统(OS)作为计算机系统资源的管理者

(3)操作系统(OS)实现了对计算机资源的抽象

推动操作系统发展的主要动力:

  1. 不断提高计算机资源利用率
  2. 为什么方便用户
  3. 器件的不断更新迭代
  4. 计算机体系结构的不断发展
  5. 不断提出新的应用需求

操作系统的发展过程

  1. 为什么提出多道批处理?为了进一步提高系统资源的利用率和系统吞吐量;
  2. 为什么提出分时系统?为了满足用户对人-机交互的需求;
  3. 为什么提出实时系统?保证系统的可靠性。

操作系统的基本特性:并发、共享、虚拟、异步

  1. 并行 与 并发 的区别:并行性:指两个或多个事件在同一时刻发生。并发性:指两个或多个事件在同一时间间隔内发生。
  2. 为什么引入并发的概念?为了提高资源利用率。
  3. 怎么实现并发?引入进程。
  4. 为什么引入进程?为了使得程序能够并发的执行。
  5. 共享的两种方式:
  • 互斥共享方式
  • 同时访问方式

并发和共享是四个特性中最基本的两个特征;虚拟:对资源进行逻辑上的抽象、虚拟化;异步:程序(进程)以不可预知的速度进行推进

第二章:进程的描述与控制

程序的执行方式:顺序执行、并发执行

顺序执行的特征:

  1. 顺序性:处理机按照程序所规定的顺序进行执行;
  2. 封闭性:程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变,程序一执行,执行结果不受外界影响;
  3. 可再现性:只要程序执行时的环境和初始条件一致,程序重复执行,都可得相同的结果。

并发执行的特征:

  1. 间断性:程序“走走停停”
  2. 失去封闭性:程序并发执行,征用资源
  3. 不可再现性:因为程序要并发执行征用资源,导致运行结果可能不一样,即运行结果不可再现性;
  4. 为了实现结果可再现性,所以要对并发执行加以控制,如何加以控制?------->进程

进程的定义

  1. 进程是程序的一次执行;
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
  3. 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

进程的特征

  1. 动态性  
  2. 独立性
  3. 并发性  
  4. 异步性

(在内存中)进程的三种基本状态(重点)(三种状态的切换)

  1. 就绪状态(Ready)
  2. 执行状态(Running)
  3. 阻塞状态(Block)

(在外存中)进程的状态:创建状态和终止状态

进程中的挂起操作

  1. 挂起:将一个进程从内存转到外存
  2. 激活:将一个进程从外存转到内存
  3. 挂起操作引入的原因:
  • 终端客户的需要
  • 父进程请求
  • 负荷调节的需要
  • 操作系统的需要

引起创建进程的事件:

(1)用户登录 (2)作业调度 (3)提供服务 (4)应用请求

引起进程终止的事件:

(1)正常结束 (2)异常结束 (3)外界干预

引起进程阻塞和唤醒的事件:

  1. 向系统请求共享资源失败;
  2. 新数据尚未到达;
  3. 等待某种操作的完成;     
  4. 等待新任务的到达。

进程的阻塞是自己阻塞自己,唤醒要靠别的唤醒

进程同步(重点)

  1. 进程同步的基本概念:对多个相关进程在执行次序上进行协调、使并发执行的诸进程之间能按照一定的规则共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性
  2. 进程之间的关系:
  • 间接相互制约关系:互斥竞争
  • 直接相互制约关系:同步合作

什么是临界资源?许多硬件资源如打印机、磁带机等都属于临界资源。

什么是临界区?每个进程中访问临界资源的那段代码。

访问临界资源的循环进程描述为:

while(TURE){
      进入区  //资源检查
      临界区  //资源访问
      退出区  //释放资源
      剩余区  //剩余资源         
    } 

同步机制应遵循的原则:

(1)空闲让进 (2)忙则等待 (3)有限等待 (4)让权等待

信号量机制

(1)整型信号量 (整型信号量定义为一个用于表示资源数目的整型量S,除初始化外,仅能通过两个标准的原子操作Wait(S)和Signal(S)来访问。这两个操作被分别称为P、V操作。)

(2)记录型信号量 (多个进程等待访问同一临界资源的情况)

(3)AND型信号量(要么把它请求的资源全部分配到进程,要么一个也不分配。)

(4)信号量:(用于表示资源数目)对资源的描述(若信号量初始值为一个非负的整数,代表当前系统中可利用的空闲资源的总数,信号量一旦定义了初始值之后,信号量就只能通过PV操作来改变它的值,对于信号量的初值通过PV操作不断地去改变之后,信号量的值还是一个非负的整数,还是代表当前可利用的空闲资源的总数;如果信号量的值是一个负值,负值的绝对值就代表当前系统中等待这个资源的进程数量,比如:经过一系列的PV操作之后,信号量S的值为-3,那就说明当前系统中等待这个资源的进程数有3个)

(5)P操作:申请资源,如果申请到了资源,就批准,如果不能申请到资源,就阻塞(比如说有个进程通过P操作去申请资源,没有申请得到资源,就阻塞自己)

(6)V操作:释放资源、唤醒进程,使得资源的数量加一,如果当前系统正好有进程在等待这个资源,就可以唤醒这个正在等待资源的进程

经典的同步问题(大题第一题,写出PV操作)

生产者-消费者问题

 

解:

   缓冲区1:full1 = 0,empty1 = 1

   缓冲区2:full2 = 0,empty2 = 1

PA(){                   PB(){

磁盘读一个记录            P(full1);

P(empty1);                 从缓冲区1中取记录

将记录放入缓冲区1中      v(empty1);

V(full1);                    p(empty2);

}                         将缓冲区1中的内容复制到缓冲区2中

                          V(full2);

                          }

PC(){

   P(full2);

  从缓冲区2中取记录

  V(empty2);

  打印记录;

}

未完待续。。。。。接

第三章:处理机调度与死锁

第四章:存储器管理

第五章:虚拟存储器

第六章:第八节 磁盘存储器的性能和调度

一、性能衡量指标:

1、磁盘的寻道时间

(1)一个扇区默认512字节

(2)柱面数 = 磁道数

(3)磁盘容量 = 磁头数+磁道(柱面)数+每道扇区数+每扇区字节数

(4)磁盘的类型:

(5)磁盘的访问时间:

① 寻道时间(与读取数据量无较大关)

② 旋转延迟时间(与硬件有关)

③ 传输时间

(6)早期的磁盘调度算法

① 先来先服务(FCFS)根据进程的请求访问磁盘的先后次序(进程数不多用)

② 最短寻道时间优先(SSTF)要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,可能导致优先级的进程发生“饥饿”现象,为了解决这个问题,提出了基于扫描的磁盘调度算法

基于扫描的磁盘调度算法

  1. 扫描算法(SCAN)考虑欲访问的磁道与当前磁道的距离,更优先考虑磁头当前移动的方向(从外向里->从里向外->从外向里)(大中小型机器和网络)(编号小的在最外层)
  2. 循环扫描算法(CSCAN)(从外向里->从外向里)(最里面编号最大)
  3. NStepSCAN算法(防磁壁粘着)(N很大时,)
  4. FSCAN算法(磁道请求队列被分成两个长队列)

2、磁盘I/O速度

3、磁盘系统的可靠性

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker深入探索:网络与资源控制、数据管理与容器互联以及镜像生成

目录 一、 Docker网络 (一)Docker网络实现原理 (二)Docker网络模式 1. Bridge网络(默认) 2. Host网络 3. None网络 4. Container网络 5. 自定义网络 二、资源控制 (一)cgr…

windows下pysqlite3安装

pysqlite3 下载地址:SQLite Download Page windows下安装 首先在官网中下载以下文件 sqlite-amalgamation-3450300.zip #源码文件 sqlite-dll-win-x64-3450300.zip # 根据系统选择32或者64,可通过查看我的电脑属性中查看 sqlite-tools-win-x64-345…

万兆以太网MAC设计(9)数据流仲裁模块

文章目录 一、模块接口二、模块功能描述2.1、实现思路 三、仿真3.1、仿真设计3.2、仿真波形 总结: 一、模块接口 c0和c1表示输入的俩个数据通道,c0优先级高,P_ARBITER_LAYER 表示当前是在IP层进行仲裁还是MAC层,可复用于俩个模块…

每日算法之对称二叉树

题目描述 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false 提示: …

c# 构造函数 静态构造函数 内联字段(即静态字段和实例字段) 父类构造函数 父类静态构造函数 父类内联字段 执行顺序

顺序如下: 1.子类的内联字段 2.子类的静态构造函数 3.父类的内联字段 4.父类的静态构造函数 5.父类的构造函数 6.子类的构造函数 7.子类的方法 public class A{public static string a1"A0";static A(){Console.WriteLine("父类内联字段:…

内网安全【1】——域信息收集/应用网络凭证/CS插件/Android/BloodHound

内容大纲: 概念名词: 局域网 (自己家) 工作组 (网吧) 内网域 (公司) 比如一家公司有1000台机器 运维人员去管理1000 不可能每台上去都进行软件的安装 环境的部署 密码的设置…

VSCODE通过SFTP链接VM进行开发

在vscode插件里面搜索sftp,安装。 安装之后,按ctrlshiftp,找到sftp的config 然后填写刚刚的IP,然后是你的用户名密码 如果是通过密钥链接的话就是这样配置 然后切换到这个sftp的tab里面 然后在你的项目右键,然后选择op…

Linux实现简单进度条(附原理解释和动图效果)

1&#xff0c;行缓冲区 先看下面的代码和运行结果&#xff0c; #include<stdio.h> #include<unistd.h> int main() {printf("你好\n");sleep(3);return 0; }只是一个简单的打印“你好”然后休眠三秒&#xff0c;最后程序结束 再看下面的代码和运行结果…

将阿里云中数据传输到其他超算服务器

目录 方法一&#xff1a;在阿里云中连接超算&#xff0c;然后使用rsync&#xff08;速度慢&#xff09; 方法2&#xff1a;rclone(速度很快&#xff0c;100G只花了大约20min) 方法一&#xff1a;在阿里云中连接超算&#xff0c;然后使用rsync/scp&#xff08;速度慢&#xff0…

JMeter 请求头信息配置详解

在进行 Web 测试和 API 测试时&#xff0c;正确配置 HTTP 请求头是关键步骤之一&#xff0c;尤其当使用诸如 JMeter 这样的强大工具时。在本文中&#xff0c;我将详细介绍如何在 JMeter 中有效地配置和管理HTTP请求头。 在 JMeter 中添加和配置 HTTP 请求头 步骤 1: 打开 HTT…

【MATLAB源码-第195期】基于matlab的OFDM,UFMC,FBMC三种通信系统误码率对比仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;正交频分复用&#xff09;、UFMC&#xff08;通用频率分割复用&#xff09;、FBMC&#xff08;滤波器组多载波&#xff09;是目前无线通信领域中使用较广的几种多载波调制技术。随着无线通信技术的飞速发展&…

伦敦金的交易时间段都适合投资吗?

是所有的交易时间段都适合投资。首先&#xff0c;让我们了解伦敦金的交易时间。伦敦金市场的交易时间分为两个主要时段&#xff1a;亚洲盘和欧美盘。亚洲盘通常在北京时间早晨6点至下午5点半左右&#xff0c;而欧美盘则从北京时间晚上8点半开始&#xff0c;一直到次日早晨4点半…

cocos-lua资源管理

本文介绍cocos-lua项目的资源管理和工作流&#xff0c;适用人群包括初学者和有经验开发者&#xff0c;故读者可根据自己的需要有选择性的查阅自己需要的内容&#xff0c;下文以ccs代指Cocos Studio 一.简单案例解析 下文通过介绍一个简单demo&#xff0c;介绍合图和资源目录结…

回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测

回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 回归预测 | MATLAB实现BO-BP贝叶斯优化BP神经网络多输入单输出回归预测 B…

2024 java使用Graceful Response,告别自己去封装响应,可以接收数据异常,快看我这一篇,足够你用!

参考官网手册地址&#xff1a;快速入门 | Docs 一、导入依赖&#xff08;根据springboot查看对应依赖版本&#xff09; <!-- Graceful --><dependency><groupId>com.feiniaojin</groupId><artifactId>graceful-response</artifactId&g…

第6篇:创建Nios II工程之控制LED<一>

Q&#xff1a;还记得第1篇吗&#xff1f;设计简单的逻辑电路&#xff0c;控制DE2-115开发板上LED的亮与熄灭&#xff0c;一行Verilog HDL的assign赋值语句即可实现。本期开始创建Nios II工程&#xff0c;用C语言代码控制DE2-115开发板上的LED实现流水灯效果。 A&#xff1a;在…

线上线下交友社区系统,支持打包小程序/公众号/H5,源码交付!

上网交友的好处有很多&#xff0c;以下是一些主要的好处&#xff1a; 1. 拓展人际关系&#xff1a;通过上网交友可以认识更多的人&#xff0c;拓展自己的社交圈。这有助于扩大自己的视野、增加人生经验和开阔心胸。 2. 找到志同道合的朋友&#xff1a;在网络上&#xff0c;我们…

c++的学习之路:28、哈希表

摘要 本章主要是说一下哈希的实现 目录 摘要 一、哈希表 1、哈希概念 2、闭散列 1、节点创建 2、插入 3、查找 4、删除 5、测试 3、开散列 1、创建 2、插入 3、查找 4、删除 5、析构函数 二、map 三、set 四、位图与布隆过滤器 五、代码 test.cpp HashT…

一文解读 SQL 生成工具

SQL 生成工具可用于测试 Parser 与其他数据库产品的兼容性&#xff0c;通过解析 YACC 语法文件中的产生式&#xff0c;生成对应的 SQL 语句&#xff0c;再使用数据库执行该 SQL&#xff0c;根据结果判断语句是否与其他数据库语法兼容。 01工具使用 语法文件预处理 预处理目的…

2024年CMS市场的份额趋势和使用统计

目前市面上有超过一半的网站都是使用CMS来搭建的&#xff0c;据不完全统计&#xff0c;现在大概有900多种CDM可供选择&#xff0c;以下是最常见的CMS的市场份额和使用率信息&#xff1a; 除了WordPress以外&#xff0c;Shopify和Wix也是比较流行的内容管理系统&#xff0c;尤其…