操作系统第一章笔记整理
Posted 雨宙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统第一章笔记整理相关的知识,希望对你有一定的参考价值。
操作系统的概念
计算机系统结构
- 硬件:提供基础计算资源。
- 操作系统:在各种应用程序和用户之间控制和协调硬件的使用。
- 应用程序:定义如何使用系统资源来解决用户的计算问题。
- 用户:人,机器,其他计算机。
操作系统的定义
- 操作系统是系统资源的管理者。
- 操作系统向上层提供方便易用的服务。
- 操作系统是最接近硬件的一层软件。
- 定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
- 操作系统是一个资源分配器和控制程序。
(1)资源分配器:管理所有资源,在资源的有效使用和公平使用之间作出决定。
(2)控制程序:控制程序的执行,以防止错误和不当使用计算机。
“在计算机上一直运行的程序”就是内核。
操作系统的功能和目标
作为系统资源的管理者
- 提供的功能:
(1)处理机管理
(2)存储器管理
(3)文件管理
(4)设备管理 - 目标:安全高效
- 例:用QQ和朋友视频聊天
Step 1:在各个文件夹中找到QQ安装的位置
逐层打开文件夹,找到QQ.exe这个程序(可执行文件)的存放位置,对应文件管理
Step 2:双击打开QQ.exe
需要把该程序相关数据放入内存,对应存储器管理
Step 3:QQ程序正常运行
对应的进程被处理机(CPU)处理,对应处理机管理
Step 4:开始和朋友视频聊天
需要将摄像头设备分配给进程,对应设备管理
作为用户和计算机硬件之间的接口
- 提供的功能:命令接口、程序接口、图形用户界面
(1)命令接口(允许用户直接使用):
A.联机命令接口(交互式命令接口):用户说一句,操作系统做一句(cmd)
B.脱机命令接口(批处理命令接口):用户说一堆,操作系统做一堆(bat)
(2)程序接口(允许用户通过程序间接使用):由一组系统调用组成(程序接口=系统调用)
(3)图形用户界面
在Windows操作系统中,删除一个文件只需把文件拖拽到“回收站”即可 - 目标:方便用户使用
作为最接近硬件的层次
- 需要实现对硬件机器的拓展
- 通常把覆盖了软件的机器称为扩充机器,又称为虚拟机
操作系统的特征
并发
- 并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的。
- 并行:指两个或多个事件在同一时刻同时发生。
- 操作系统的并发性指计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行着的,而微观上是交替运行的,操作系统就是伴随着“多道程序技术”而出现的,因此,操作系统和程序并发是一起诞生的。
- 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行;多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
- 并发性是操作系统一个最基本的特征。
共享
- 共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 两种资源分享方式:
(1)互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但在一个时间段内只允许一个进程访问该资源。例:使用QQ和微信视频,同一时间段内摄像头只能分配给其中一个进程。
(2)同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。例::使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘
的。 - 并发性和共享性互为存在条件。
- 并发和共享是操作系统的两个最基本的特征。
虚拟
- 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
- 例:虚拟存储器技术(空分复用技术),虚拟处理器技术(时分复用技术)。
异步
- 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
操作系统的发展与分类
手工操作阶段
批处理阶段
单道批处理系统
- 缺点:内存中仅能有一道程序运行,只有该程序运行结束后才能调入下一道程序,CPU有大量的时间是在空闲等待I/O完成,资源利用率仍然很低。
多道批处理系统(多道程序系统)
操作系统将多个作业(作业池的子集)同时保存在内存中。
- 作业调度(长期调度):在几个准备放入内存的作业中选择一个作业(从磁盘到内存)。
- CPU调度(短期调度):在几个准备运行的作业中选择一个(从内存到CPU)。
- 最后,同时运行的多个作业要求它们在操作系统的各个阶段相互影响的能力受到限制。
- 主要优点:多道程序并发执行,共享计算机资源,资源利用率大幅提升,系统吞吐量增大。
- 主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行)
分时操作系统
分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
特点:多用户和交互能力
- 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
- 主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
加载到内存并正在执行的程序通常被称为进程。
- 为了获得合理的响应时间,分时操作系统需要虚拟内存,这是一种允许不完全在内存中执行作业的技术。
- 分时操作系统还必须提供文件系统和磁盘管理。
桌面系统
个人计算机:专用于单个用户的计算机系统。
- 使用到的I/O设备:键盘,鼠标,显示屏,小型打印机。
- 方便使用,快速响应,不再强调CPU利用率。
- 可以运行几种不同类型的操作系统(如Windows,MacOS)。
并行系统(多CPU系统/多处理器系统)
具有多个CPU的多处理器系统进行密切通信。
- 紧耦合系统:处理器共享内存和时钟,通过共享内存进行通信,CPU信息通讯频繁,吞吐量增加,经济,可靠性提高。
- 并行系统分为以下两种系统:
(1)对称多处理系统(SMP):每个处理器运行操作系统的相同副本;许多进程可以同时运行,而不会降低性能;大多数现代操作系统都支持SMP。
(2)非对称多处理系统:每个处理器被分配一个特定的任务,主处理器将工作调度并分配给从处理器;在非常大的系统中更常见。 - 多核系统为多处理器系统,但并不是所有的多处理器系统都是多核的。
分布式系统
- 松耦合系统:每个处理器都有自己的本地内存;通过不同通信线路进行通信。
- 优点:资源共享;计算速度加快;可靠性;通信。
- 可能是客户端-服务端模式或点对点模式。
集群系统
- 集群允许两个或多个系统共享存储。
- 提供高可靠性。
- 非对称集群:一个服务器运行应用程序,而另一个服务器是备用的。
- 对称集群:所有N个主机都在运行应用程序。
实时操作系统
- 主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
- 在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要求在严格的时限内处理完事件,实时操作系统的主要特点是及时性和可靠性。
- 实时操作系统分为硬实时系统和软实时系统,硬实时系统必须在绝对严格的规定时间内完成处理(导弹控制系统),软实时系统能接受偶尔违反时间规定。
- 在硬实时系统中,二级存储有限或缺失,数据存储在短期存储器中,或ROM中,与分时系统冲突(是否能够优先响应紧急任务)。
手持系统
计算机系统结构
计算机系统组织
计算机系统操作
- 一个或多个cpu、设备控制器通过公共总线连接,提供对共享内存的访问。
- 并发执行的CPU和设备竞争内存周期。
- CPU区间和I/O区间
- I/O设备和CPU可以并发执行。
- 每一个设备控制器可以负责特定的设备类型;具有本地缓冲区和寄存器;通知CPU它已经完成了它的操作引起中断。
中断和异常
- 通常通过中断向量将控制传递给中断服务程序。
- 体系结构必须保存中断指令的地址。
- 当另一个中断正在被处理时,传入中断被禁用,以防止丢失中断。
- 操作系统是中断驱动的。
中断处理
- 操作系统通过寄存器和程序计数器来保存上一个进程运行状态。
- 分离的代码段决定了对于每种类型的中断应该采取什么行动。
- 确定发生哪种类型的中断:轮询/向量中断系统。
中断的作用
- CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序。操作系统内核程序是整个系统的管理者,“中断”会使CPU由用户态变为内核态,使操作系统重新夺回对CPU的控制权。
- 在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序。
- “中断”是让操作系统内核夺回CPU使用权的唯一途径。
- 内核态->用户态:执行一条特权指令(修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权)
- 用户态->内核态:用“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权
中断的类型
内中断
与当前执行的指令有关,中断信号来源于CPU内部。(也称异常、例外)。
- 陷阱、陷入(trap):由陷入指令引发,是应用程序故意引发的。
- 故障(fault):由错误条件引起的,可能被内核程序修复。内核程序修复故障后会把 CPU使用权还给应用程序,让它继续执行下去。如:缺页故障。
- 终止(abort):由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序,而是直接终止该应用程序。如:整数除0、非法使用特权指令。
外中断
与当前执行的指令无关,中断信号来源于CPU外部,包括时钟中断和I/O中断请求。大多数情况下,“中断”特指狭义的中断,即外中断。
中断机制的基本原理
- 不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到响应的中断处理程序在内存中的存放位置。
- 检查中断信号
(1)内中断:CPU在执行指令时会检查是否有异常发生。
(2)外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理。 - 通过“中断向量表”找到相应的中断处理程序。
I/O结构
同步I/O结构
当I/O启动后,控制只在I/O完成时返回给用户程序。
异步I/O结构
在I/O启动后,控制返回到用户程序,而没有等待I/O完成。
直接内存访问结构(DMA)
- 对于大量数据的移动,可以使用直接内存访问,设备控制器可在本地缓冲和内存之间传送整块的数据,而无需CPU的干预。
- 每个块只产生一个中断,而不是每个字节产生一个中断。
存储结构
- 主存:只有CPU可以直接访问的大型存储媒体。
- 辅助存储器:主存的扩展,提供大的非易失性存储容量,如磁盘。
- 主存储器是现代计算机系统运行的中心。
缓存
- 正在使用的信息暂时从较慢的存储器复制到较快的存储器。
- 当需要特定信息时,首先检查它是否处于高速缓存,如果存在则直接从缓存中获取的信息,如果不存在就使用源地的信息,同时将其复制到高速缓存中以便下次再用。
- 高速缓存管理的设计很重要。
- 从磁盘到寄存器的迁移
操作系统结构
进程管理
- 进程是正在执行的程序。(1966)
- 操作系统负责进程管理的相关活动:
(1)进程的创建和删除
(2)进程的暂停和恢复
(3)提供以下机制:进程同步、进程通信
内存管理
- 内存是一个大的字节数组,每个字节都有地址。
- 内存为CPU和I/O设备所共享。
- 中央处理器在获取指令周期时从内存中读取指令,而在获取数据周期时对内存数据进行读写。
- 内存一般是CPU所能直接寻址和访问的、唯一的、大容量的存储器。
(1)如果CPU需要处理磁盘数据,那么这些数据必须首先通过CPU产生的I/O调用传到内存。
(2)如果CPU需要执行指令,那么这些指令必须在内存中。 - 内存是一种易失性存储装置。当系统出现故障时,它将丢失其内容。
- 操作系统负责内存管理的以下活动:
(1)记录内存的哪部分在被谁使用以及被谁使用。
(2)决定哪些进程会调入或调出内存。
(3)根据需要分配和释放内存空间。
文件管理
- 文件是创建者定义的相关信息组合。
- 操作系统负责文件管理的以下活动:
(1)创建和删除文件。
(2)创建和删除目录,以便组织文件。
(3)提供文件和目录的操作原语。
(4)映射文件到外存。
(5)备份文件到稳定的存储介质。
I/O系统管理
- I/O子系统包括以下几个组件:
(1)包括缓冲、高速缓存的内存管理组件。
(2)设备驱动器的通用接口。
(3)特定硬件设备的驱动程序。
大容量存储器管理
- 由于内存太小不能容纳所有的数据和程序,再加上掉电会失去数据,所以计算机系统提供外存来备份内存。
- 大多数现代计算机系统采取硬盘作为主要在线存储介质。
- 操作系统负责有关硬盘管理的以下活动:
(1)空闲空间管理
(2)存储空间分配
(3)硬盘调度
网络
安全机制
- 保护是指一种控制程序、进程或用户对系统和用户资源的访问的机制。
- 用户模式、内核模式(特权指令)
命令解释程序
操作系统提供服务
- 程序执行
- I/O操作
- 文件系统操作
- 通信
- 错误检测
- 资源分配
- 记账
- 保护与安全
系统调用
什么是系统调用
系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数。
- 应用程序可以通过系统同调用来请求获得操作系统内核的服务。
- 系统调用提供操作系统服务接口,这些调用通常以C或C++编写,对某些底层任务,可能用汇编语言指令编写。
- 有三种方法用于在运行中的程序和操作系统之间传递参数:
(1)在寄存器中传递参数。(寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果)
(2)将参数存储在内存中的表中,表地址作为参数传递到寄存器中。
(3)由程序将参数压入(存储)堆栈,由操作系统弹出堆栈。
系统调用和库函数的区别
- 编程语言:向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序员编程更加方便。(有些库函数涉及系统调用,如创建一个新文件,有些库函数不涉及系统调用,如取绝对值函数)
- 操作系统:向上提供系统调用,使得上层程序能请求内核的服务。
系统调用的必要性
- 由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用” 。如,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求,内核会对各个请求进行协调处理,否则两个进程可以随意地、并发地共享打印机资源。
系统调用实现的功能
- 应用程序通过系统调用请求操作系统的服务,而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
系统调用的过程
- 传递系统调用参数
- 执行陷入指令(用户态)
- 执行响应的内请求核程序处理系统调用(核心态)
- 返回应用程序
- 注:发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行。
操作系统的体系结构
操作系统的内核
- 内核是操作系统最基本、最核心的部分,实现操作系统内核功能的那些程序就是内核程序。
- 与硬件关联较紧密的模块:
(1)时钟管理:实现计时功能
(2)中断处理:负责实现中断机制
(3)原语:是一种特殊的程序,处于操作系统的最底层,是最接近硬件的部分,程序的运行具有原子性(运行不可中断),运行时间较短、调用频繁。 - 对系统资源进行管理的功能:进程管理、存储器管理、设备管理(这些管理工作更多的是对数据结构的操作,不会直接涉及硬件)
- 操作系统内核需要运行在内核态,操作系统非内核功能运行在用户态。
大内核和微内核
- 大内核:
(1)将操作系统的主要功能模块都作为系统内核,运行在核心态。
(2)优点:高性能。
(3)缺点:内核代码庞大,结构混乱,难以维护。
(4)典型的大内核/宏内核/单内核 操作系统: Linux、UNIX - 微内核:
(1)只把最基本的功能保留在内核。
(2)优点:内核功能少,结构清晰,方便维护。
(3)缺点:需要频繁地在核心态和用户态之间切换,性能低。
(4)典型的 微内核 操作系统: Windows NT
以上是关于操作系统第一章笔记整理的主要内容,如果未能解决你的问题,请参考以下文章