【软件设计师】深入探究操作系统

简介: 【软件设计师】深入探究操作系统

🐓 操作系统的作用

1.通过资源管理提高计算机系统的效率

2.改善人机界面向用户提供友好的工作环境


🐓 操作系统的特征

并发性

操作系统能够同时处理多个任务或事件,即并发执行。这是通过分时系统或进程来实现的,使多个程序可以同时运行


共享性

操作系统中的资源,如内存、CPU和外部设备,可以被多个进程共享。资源共享分为互斥共享和同时访问两种方式,前者是多个进程不能同时访问同一资源,后者是多个进程可以同时访问同一资源。


虚拟性

操作系统使用虚拟技术来提供一个逻辑的实体而不是物理实体。例如,通过虚拟处理器技术,一个物理CPU可以被虚拟为多个逻辑CPU,使得每个用户都感觉有一个专用的CPU为其服务。同样,虚拟存储器和虚拟设备技术可以提供虚拟内存和虚拟外部设备。


异步性

在多道程序环境下,允许多个程序并发执行。由于资源的有限性,进程的执行走走停停,以不可预知的速度向前推进,这就是进程的异步性。异步性使得操作系统运行在一种随机的环境下,可能导致进程产生与时间有关的错误。


🐓 操作系统的功能

处理机管理

对处理机的执行时间进行管理,采用多道程序等技术将CPU的时间合理分配给每个任务,主要包括进程控制,进程同步,进程通信和进程调度

文件管理

包括文件存储空间管理,目录管理,文件的读/写管理和存取控制

存储管理

存储管理时对主存储器空间进行管理,包括存储分配与回收,存储保护,地址映射(变换)和主存扩充

设备管理

对硬件设备的管理,包括对输入输出设备的分配,启动,完成和回收

作业管理

包括任务,界面管理,人机交互,图形界面,语音控制和虚拟现实等


🐓 操作系统的类型

批处理操作系统(单道,多道)

分时操作系统(UNIX,多路性,独立性,交互性,及时性)

实时操作系统(快速的响应时间,有限的交互能力,高可靠性)

网络操作系统(集中模式,客户端/服务器模式,对等模式)

分布式操作系统(透明性,可靠性,高性能)

微机操作系统(Windows)

嵌入式操作系统(微型化,可定制,实时性,可靠性,易移植性)


🐓 程序并发执行的特点

1.失去了程序的封闭性

2.程序和机器的执行程序的活动不再一一对应

3.并发程序间的互相制约性

9a399a27bca0426592ee0ec027192e07.png


🐓 进程的组成

程序

描述了进程需要完成的功能

数据

程序执行时所需的数据及工作区

进程控制块(PCB)

8384f94de3f1454e926b5c3fa32284f0.png

🐓 进程的状态

新建、就绪、运行、阻塞、终止

226cbc8d7caa4bc39473955392dcf7a6.png

🐓 原语

执行时不能被分割,要不做要么就不做

内核中所包含的原语主要又进程控制原语,进程通信原语,资源管理原语以及其他方面的原语

进程控制原语有进程创建原语,进程撤销原语,进程挂起原语,进程激活源于,进程阻塞原语,以及进程唤醒原语等


🐓 进程之间的同步

进程间完成一项任务时直接发生相互作用的关系


🐓 进程之间的互斥

系统中各个进程互斥使用临界资源(进程可以共享各类资源,但有些资源一次只能共一个进程使用)


🐓 信号量的意义

信号量时一个整型变量。根据控制对象的不同赋予不同的值

公用信号量:实现进程间的互斥,初值为1或资源的数目

私用信号量:实现进程间的同步,处置为0或某个正整数

若S>=0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数

问题

编程难度大,效率低


🐓 高级通讯方式

共享存储模式

互相通信的进程共享某些数据结构实现进程之间的通信

消息传递模式

进程间的数据交换以消息为单位,直接利用系统提供的通信命令(原语)来实现通信。比如send(A),receive(A)

管道通信

使用管道连接一个读进程一个写进程,以实现他们之间通信的共享文件、相关到(共享文件)提供输入的发送进程,以字符流的形式将大量的数据送入管道,而接收进程可以从管道中接收大量的数据。


🐓 管程

由一些共享数据,一组能为并发进程所执行的作用在共享数据上的操作的集合,初始代码以及存取全组成的一种同步机制


管程的结构

558b639a21b245f7920a2171bc4f6fbf.png


🐓 进程调度

在某些操作系统中,一个座椅从提交到完成需要经历高,中,低三级调度

高级调度

高级调度又称作业调度,它决定处于输入池中哪一个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。

中级调度

中级调度它决定于交换区中的哪个就绪进程可以调入内存,以便直接参与CPU的京城,在内存资源紧张时。为了将进程调入内存,必须将内存中处于阻塞状态的进程调出至交换区,以便为调入进程腾出空间。

低级调度

低级调度又称进程调度,它决定处于内存中的哪个就绪进程可以占用CPU。

进程调度算法

先来先服务算法(FCFS)

按照作业提交或进程成为就绪状态的先后顺序分配CPU

特点:有利于长作业,而不利于多作业,可能会出现饿死的状况,有利于CPU繁忙的作业,而不利于I/O繁忙的作业,主要用于宏观调度

时间片轮转算法

时间片轮换主要用于微观调度,为了提高资源利用率,通过时间片转换提高进程并发性和响应时间特性,从而提高资源利用率

固定时间片

分配每个进程相等的时间片,使所有进程都能公平执行

可变时间片

根据进程不同的要求对时间片的大小实时进行修改,可以更好的提高效率

优先级调度算法

每一个进程都有一个优先数,数值大的表示优先级高,系统在调度时总选择优先数大的占用CPU

静态优先级

进程的优先级在创建时就确定,知道进程终止都不会改变

动态优先级

在创建进程时赋予一个优先级,在进程运行过程中可以改变,以便获得更好的调度性能

多级反馈调度算法

时间片轮转算法和优化级算法的综合与发展。

优点:照顾了段进程以提高系统吞吐量,缩短了平均周转时间,更好的I/O设备利用率和响应时间,不必估计进程的执行时间。

6f6ac6166d434dcab3127467c0d8af1f.png

🐓 死锁

两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

6c76560fa53e4258abb978dfeb7cb025.png

死锁产生的原因

1.互斥条件:一个资源每次只能被一个进程使用。

2.占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

3.不可强行占有:进程已获得的资源,在末使用完之前,不能强行被其他进程剥夺。

4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

126b343955c143a5b5d845eef65d9376.png

死锁的预防

预先静态分配法:破坏了‘不可剥夺条件’,预先分配所需资源,保证不等待资源。

银行加算法:先计算,如果分配资源后系统进入不安全状态时就不予分配

检测:系统定时运行死锁检测程序

解除:资源剥夺法+撤销进程法


🐓 安全状态

系统能过按照某种顺序来为每个进程分配其所需资源,使每个进程都能顺序完成


🐓 存储器管理

存储器时计算机系统中的关键性资源,是存放各种信息的重要场所。

分配和回收主存空间,提高主存利用率,扩展主存,有效保护主存信息


🐓 存储器的层次结构

1.CPU寄存器:这是存储器层次结构中的最高层,访问速度最快,但容量最小。CPU寄存器用于暂存指令、数据和地址,是CPU的一部分。

2.高速缓存(Cache):高速缓存是位于CPU和主存储器之间的存储器,其访问速度较快,容量相对较小。高速缓存用于存放经常访问的指令和数据,以减少对主存储器的访问次数。

3.主存储器(Main Memory):主存储器是计算机系统中的主要存储区域,容量较大,但访问速度相对较慢。主存储器用于存放操作系统、应用程序和数据等。

4.辅助存储器(Secondary Storage):辅助存储器是计算机系统中的外部存储设备,如硬盘、固态硬盘等。其容量比主存储器大得多,但访问速度较慢。辅助存储器用于存放大量的数据和程序等。


🐓 地址重定位

讲逻辑地址转变成物理地址的过程,可分为静态重定位和动态重定位

静态重定位

程序装入主存时已经完成了逻辑地址到物理地址的变换,在程序执行期间不会再次发生变化

动态重定位

程序运行期间完成逻辑地址到物理地址的交换。其中实现机制需要依赖硬件地址变换机构


🐓 虚拟存储页面置换算法

1.最近最少使用(Least Recently Used,LRU)算法:该算法选择最长时间未被使用的页面进行替换。当一个新的页面需要被加载到内存中时,LRU算法会检查内存中是否存在可用的空闲页面,如果有,则选择最长时间未被使用的页面进行替换;否则,将选择一个暂时不会被使用或者最不常用的页面进行替换。

2.先进先出(First In First Out,FIFO)算法:该算法选择最早加载到内存的页面进行替换。当一个新的页面需要被加载到内存中时,FIFO算法会检查内存中是否存在可用的空闲页面,如果有,则选择最早加载的页面进行替换;否则,将选择一个暂时不会被使用或者最不常用的页面进行替换。

3.最不经常使用(Least Frequently Used,LFU)算法:该算法选择最不经常使用的页面进行替换。当一个新的页面需要被加载到内存中时,LFU算法会检查内存中是否存在可用的空闲页面,如果有,则选择最不经常使用的页面进行替换;否则,将选择一个暂时不会被使用或者最不常用的页面进行替换。


🐓 设备管理的目标

1.保障设备正常运行:通过科学的管理和维护,确保设备能够正常运行,满足生产或服务的需求。

2.提高设备利用率:通过合理的调度和使用,提高设备的利用率,降低闲置和浪费,从而节约成本。

3.预防性维护和维修:通过预防性的维护和维修措施,降低设备的故障率,提高设备的使用寿命。

4.优化设备配置:根据生产或服务的需要,合理配置设备资源,提高设备的使用效率。

5.降低能耗和环保:在设备的使用过程中,注重节能减排和环保,降低能耗和减少污染。

6.安全管理:确保设备的安全使用,防止设备事故的发生,保障人员和企业的安全。


🐓 磁盘调度算法

1.先来先服务算法(FCFS):这种算法按照请求到达的顺序进行服务,优先级最高的是最先请求。

2.最短寻道时间优先算法(SSTF):这种算法选择距离当前磁头位置最近的请求进行服务,以最小化寻道时间。

3.扫描算法(SCAN):这种算法从一端向另一端移动磁头,并按照遇到的请求顺序进行服务。当磁头移动到一端时,它会改变移动方向,并继续服务请求。

4.循环扫描算法(C-SCAN):这种算法类似于SCAN算法,但是当磁头到达一端时不会改变移动方向,而是继续在一个方向上移动,直到处理完所有的请


🐓 文件

具有符号名的,在逻辑上具有完整意义的一组相关信息项的集合


文件系统

操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构


文件存储管理方案

d276a154ffc54611b496fe899e779b3d.png


文件系统的安全

一类涉及到技术,管理。法律,道德,政治等问题,

另一类涉及操作系统的安全机制


文件系统的可靠性

1.备份和恢复:备份是保障数据安全的重要手段,可以通过定期备份和增量备份来减少数据丢失的风险。同时,恢复也是必要的操作,可以通过备份数据快速恢复文件系统。

2.错误检测和纠正:文件系统应该具备错误检测和纠正的能力,例如通过校验和等方式来检测数据的完整性,以及通过冗余等方式来纠正错误数据。

3.持久化和稳定存储:文件系统应该能够持久化存储数据,并且在系统故障或者掉电等情况下保证数据的稳定性。

4.访问控制和加密:文件系统应该提供访问控制和加密等安全措施,以保护数据的机密性和完整性。

5.一致性检查:文件系统应该定期进行一致性检查,以确保数据的正确性和一致性。


🐓 作业

系统为完成一个用户的计算任务所作的工资总和


作业状态

1.后备状态:作业全部输入到计算机系统中,由操作系统将其存放在输入井中,等待作业调度程序调度。

2.提交状态:当作业提交给计算机中心,通过输入设备送入计算机系统的过程状态称为提交状态。

3.执行状态:一旦作业被作业调度程序选中,为其分配了必要的资源,并为其建立相应的进程后,该作业便进入了执行状态。

4.完成状态:当作业正常结束或异常终止时,作业进入完成状态。


作业调度算法

1.先来先服务(FCFS):按照作业提交或进程变为就绪状态的先后次序,分派CPU。当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

2.轮转法(Round Robin):让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。将系统中所有的就绪进程按照FCFS原则,排成一个队列。每次调度时将CPU分派给队首进程,让其执行一个时间片。在一个时间片结束时,发生时钟中断。调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。

3.优先级调度算法(HPF):每一个作业规定一个表示该作业优先级别的整数,当需要将新的作业由输入井调入内存处理时,优先选择优先数最高的作业。

4.多级反馈队列调度算法:将时间片轮转与优先级调度相结合,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转。优点是兼顾长短作业,有较好的响应时间,可行性强,适用于各种作业环境。

5.高响应比优先调度算法:根据“响应比=(进程执行时间+进程等待时间)/ 进程执行时间”这个公式得到的响应比来进行调度。高响应比优先算法在等待时间相同的情况下,作业执行的时间越短,响应比越高,满足段任务优先,同时响应比会随着等待时间增加而变大,优先级会提高,能够避免饥饿现象。优点是兼顾长短作业,缺点是计算响应比开销大,适用于批处理系统。

相关文章
|
6月前
|
安全 物联网 调度
【软件设计师备考 专题 】网络操作系统和嵌入式操作系统基础知识
【软件设计师备考 专题 】网络操作系统和嵌入式操作系统基础知识
119 0
|
6月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
180 0
|
3月前
|
存储 算法 安全
【第二章】软件设计师 之 操作系统基本原理
这篇文章是软件设计师备考资料的第二章,讲解了操作系统的基本原理,包括操作系统概述、进程状态转换、同步与互斥问题、PV操作、死锁问题与银行家算法、存储管理、文件系统和设备管理等关键知识点。
【第二章】软件设计师 之 操作系统基本原理
|
6月前
|
存储 算法 调度
【软件设计师—基础精讲笔记2】第二章 操作系统2
【软件设计师—基础精讲笔记2】第二章 操作系统1
62 1
|
6月前
|
存储 算法 Unix
【软件设计师—基础精讲笔记2】第二章 操作系统1
【软件设计师—基础精讲笔记2】第二章 操作系统
99 1
|
6月前
|
缓存 网络协议 安全
【软件设计师备考 专题 】操作系统的配置
【软件设计师备考 专题 】操作系统的配置
79 1
|
6月前
|
存储 算法 调度
【中级软件设计师】—(针对上午题)操作系统(三十)
【中级软件设计师】—(针对上午题)操作系统(三十)
|
6月前
|
存储 算法 调度
【中级软件设计师】—操作系统考点总结篇(二)
【中级软件设计师】—操作系统考点总结篇(二)
【软件设计师-从小白到大牛】上午题基础篇:第二章 操作系统(3)
【软件设计师-从小白到大牛】上午题基础篇:第二章 操作系统
43 0
|
10天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
27 0
Vanilla OS:下一代安全 Linux 发行版

热门文章

最新文章