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

news2024/11/25 20:47:13

目录

第一章:操作系统引论

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

未完待续。。。。。接

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

第四章:存储器管理

第五章:虚拟存储器

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


第一章:操作系统引论

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

操作系统的三个作用:

(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、磁盘系统的可靠性

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

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

相关文章

pgvector扩展在IvorySQL Oracle兼容模式下的应用实践

向量数据库是生成式人工智能(GenAI)的关键组成部分。作为PostgreSQL的重要扩展,pgvector支持高达16000维的向量计算能力,使得PostgreSQL能够直接转化为高效的向量数据库。 IvorySQL基于PostgreSQL开发,因此它同样支持添加pgvector扩展。在Ora…

社交媒体数据恢复:新浪微博

当我们在使用新浪微博时,可能会遇到一些意外情况,如误删微博、账号出现问题等。这时,我们需要进行数据恢复。本文将详细介绍如何在新浪微博中进行数据恢复。 首先,我们需要了解新浪微博的数据恢复功能。根据微博的帮助中心&#…

实验8 顺序图、状态图

一、实验目的 通过绘制顺序图、状态图,掌握顺序图、状态图之间的基本原理和差异。 能对简单问题进行顺序图、状态图的分析与绘制。 二、实验项目内容(实验题目) 在图书信息管理系统中,系统管理员可以对图书信息进行管理和维护…

Python轻量级Web框架Flask(12)—— Flask类视图实现前后端分离

0、前言: 在学习类视图之前要了解前后端分离的概念,相对于之前的模板,前后端分离的模板会去除views文件,添加两个新python文件apis和urls,其中apis是用于传输数据和解析数据 的,urls是用于写模板路径的。 …

merge and rebase

文章目录 什么是merge什么是rebasemerge和rebase的区别操作执行git merge操作git rebase操作冲突解决解决冲突的步骤 Git Merge 和 Git Rebase 都是用于集成来自不同分支的修改的 Git 命令。 什么是merge Git Merge 是将一个分支的改动合并到另一个分支的方式。当你执行一个 m…

Unity 物体触碰事件监听

声明委托 public delegate void MyDelegate(Collider trigger); C# 委托(Delegate) | 菜鸟教程 (runoob.com)https://www.runoob.com/csharp/csharp-delegate.html 定义委托 public MyDelegate onTriggerEnter; public MyDelegate onTriggerStay; pu…

Leetcode—1041. 困于环中的机器人【中等】

2024每日刷题&#xff08;121&#xff09; Leetcode—1041. 困于环中的机器人 实现代码 class Solution { public:bool isRobotBounded(string instructions) {int x 0;int y 0;int d 0;vector<vector<int>> direction{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};for…

C语言阶段的题目解析

前言 我们C语言已经学习的差不多了&#xff0c;但是C语言之中存在的一些问题与难点我们还不一定能够又快又好地解决&#xff0c;为了夯实我们的基础&#xff0c;我们来练习几道稍微有点难度的C语言习题吧 例题一 题目 int main(void) {unsigned char i 7;int j 0;for (; i…

织梦云端:网络信号原理的艺术解码

hello &#xff01;大家好呀&#xff01; 欢迎大家来到我的Linux高性能服务器编程系列之《织梦云端&#xff1a;网络信号原理的艺术解码》&#xff0c;在这篇文章中&#xff0c;你将会学习到网络信号原理以及应用&#xff0c;并且我会给出源码进行剖析&#xff0c;以及手绘UML图…

MQTT数据传输Payload的常见格式介绍

使用MQTT client过程中看到常见的数据格式&#xff1a; 下面是介绍 Plaintext&#xff08;纯文本&#xff09; 介绍&#xff1a;纯文本编码是最基本的编码形式&#xff0c;它使用标准的ASCII或Unicode字符来表示数据。这种编码格式是人类可读的&#xff0c;因为它直接表示文本信…

centos 7使用源码编译安装Python 3.12.2(最新版本)

&#xff08;一&#xff09;、说明 在centos 7上&#xff0c;默认安装出来的python是&#xff1a;2.7.5版本 1.查看python版本&#xff1a; python --version 2.通过yum安装出来的&#xff0c;适合当前操作系统的&#xff0c;最新的python版本是&#xff1a;3.6.8 python3…

C#队列(Queue)的基本使用

概述 在编程中&#xff0c;队列&#xff08;Queue&#xff09;是一种常见的数据结构&#xff0c;它遵循FIFO&#xff08;先进先出&#xff09;的原则。在C#中&#xff0c;.NET Framework提供了Queue<T>类&#xff0c;它位于System.Collections.Generic命名空间下&#x…

Spring事务回滚核心源码解读

记一次Springboot事务超时不回滚的分析过程 在Springboot中&#xff0c;我用的xml进行事务管理&#xff0c;DataSourceTransactionManager作为事务管理器&#xff0c;配置了事务控制在Service层&#xff1b;在事务管理器中&#xff0c;配置了defaultTimeout事务超时时间为5秒&…

RK3588 - RKNN(Rockchip 神经处理单元)的逆向工程

本文翻译自https://jas-hacks.blogspot.com/2024/02/rk3588-reverse-engineering-rknn.html RK3588 NPU 的内部操作和功能主要隐藏在名为RKNPU2的闭源 SDK 中。由于对大型语言模型 (LLM) 的兴趣以及对transform模型最佳矩阵乘法的追求&#xff0c;想了解 RKNPU SDK 新引入的矩阵…

Jetpack Compose简介

文章目录 Jetpack Compose简介概述声明式UI和命令式UIJetpack Compose和Android View对比Compose API设计原则一切皆为函数组合优于继承单一数据源 Jetpack Compose和Android View关系使用ComposesetContent()源码ComposablePreview Jetpack Compose简介 概述 Jetpack Compos…

数据结构-二叉搜索树(BST)

目录 什么是二叉搜索树 二叉搜索树的特性 (1)顺序性 (2)局限性 二叉搜索树的应用 二叉搜索树的操作 (1)查找节点 (2)插入节点 (3)删除节点 (4)中序遍历 什么是二叉搜索树 如图所示&#xff0c;二叉搜索树&#xff08;binary search tree&#xff09;满足以下条件。…

Unity 递归实现数字不重复的排列组合

实现 private void Permutation(List<int> num, int leftIndex, List<string> strs) {if (leftIndex < num.Count){for (int rightIndex leftIndex; rightIndex < num.Count; rightIndex){Swap(num, leftIndex, rightIndex);Permutation(num, leftIndex 1…

【深度学习】【Lora训练1】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

文章目录 一、环境搭建指南二、个性化安装流程三、启动应用四、打开web五、开始训练 19.27服务器 一、环境搭建指南 打造一个高效且友好的开发环境&#xff1a; 项目源码获取&#xff1a; 通过以下命令轻松克隆项目及所有子模块至您的Linux系统&#xff1a; git clone --recu…

workminer之dht通信部分

workminer是通过SSH爆破传播的挖矿木马&#xff0c;感染后会释放xmrig挖矿程序利用主机的CPU挖取北方门罗币。该样本能够执行特定的指令&#xff0c;指令保存在一个配置文件config中&#xff0c;config文件类似于xml文件&#xff0c;里面有要执行的指令和参数&#xff0c;样本中…

服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

Eureka Eureka是由Netflix开源的一个服务注册和发现组件&#xff0c;它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server&#xff0c;客户端则是那些需要注册的服务。Eureka具有以下特点&#xff1a; 高可用性&#xff1a;Eureka支持多节点…