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

2024-04-29 19:20

本文主要是介绍【操作系统复习资料】(持续更新中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

第一章:操作系统引论

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

未完待续。。。。。接

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

第四章:存储器管理

第五章:虚拟存储器

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


第一章:操作系统引论

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

操作系统的三个作用:

(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.chinasem.cn/article/946940

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl