操作系统概述

操作系统是计算机系统的核心,管理资源并提供用户接口。其基本特征包括并发、共享、虚拟和异步。并发关注宏观上的同时性,而异步强调程序执行的不可预知性。操作系统通过内核管理中断、原语和数据结构,实现任务调度和资源分配。此外,介绍了批处理、分时、实时等操作系统类型及其发展历史。
摘要由CSDN通过智能技术生成

操作系统概述

操作系统的基本概念

概念:

操作系统是指控制管理整个计算机系统的硬件和软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序结合。操作系统是计算机系统中最基本的系统软件

4个特征

操作系统的基本特征包括并发共享虚拟异步

image-20230320105934473

并发共享是操作系统两个最基本的特征,两者互为存在的条件:

  1. 资源共享是以程序并发未条件的,若无并发也不会出现资源的共享
  2. 若系统不能对资源共享实施有效的管理,则必将影响程序的并发执行

并发 关注的是宏观上的一段时间内可能是同时运行多个的,但是实际在微观上来看一个时刻只能运行一个。

并行 关注的是微观上的时刻,也就是说能在同一时刻完成两种火两种以上的操作。

计算机的并行性是指

所具有同时(微观)进行运算或操作的特征。

并发异步

并发更强调了多个事件在同一段事件内进行

异步则强调了程序并发执行过程中,多道程序之间交替执行的围观本质,因为程序的执行并不是一贯到底的,而是走走停停的(考虑中断技术)。

并发(Concurrence)

是指两个或多个事件在同一时间间隔内发生。

注意:同一时间间隔(并发)和同一时刻(并行)的区别

共享(Sharing)

资源共享即共享,是指系统中的资源可供内存中的多个并发执行的进程共同使用。共享分为两种资源共享方式:

  1. 互斥共享方式

    系统中的某些资源,如打印机,虽然可供多个进程使用,但是为使得打印或记录的结果不致造成混乱,应规定在一段时间内只允许一个进程访问资源

  2. 同时访问共享

    系统中还有一些资源,这些资源允许在一段时间内多个进程“同时”访问(这里说的同时是指宏观上的,在微观上可能是交替地对该资源进行访问即“分时共享”)。例如若干个用户可以同时访问一个文件。

虚拟(Virtual)

虚拟是把一个物理上的实体变为若干逻辑上的对应物。用于实现虚拟的技术,称为虚拟技术。操作系统中利用了多种虚拟技术来实现虚拟处理器、虚拟内存和虚拟外部设备等

虚拟处理器技术是通过多道程序设计技术,采用让多道程序并发执行的方法,来分时使用一个处理器。

操作系统的虚拟技术可归纳为:

  • 时分复用技术,如处理器的时分复用
  • 空分复用技术,如虚拟存储器
异步(Asynchronism)

多道程序环境允许多个程序并发执行,但是由于资源有限,进程并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进,这就是进程的并发性。

目标和功能

目标
  • 方便性 操作系统使计算机系统更易于使用

  • 有效性 操作系统使资源的利用率更高,系统的吞吐量更大

  • 可扩充性 操作系统能很方便地增加新的功能和模块,并能修改老的功能和模块

  • 开放性 操作系统的开发应该遵守事件标准规范,特别是OSI

功能

image-20230320113253043

可以分别3个角度来看操作系统的功能:

1. 操作系统作为计算机的系统资源的管理者
  • 处理机管理

    多道程序环境下,处理机的分配和运行都以进程为基本单位,因而对处理机的管理可归结为对进程的管理。

    进程管理的主要功能:进程控制、进程同步、死锁处理、处理机调度。

  • 存储器管理

    存储器的管理是为了给多道程序的运行提供良好的环境,主要包括:内存分配与回收、地址映射、内存保护与共享和内存扩充等功能

  • 文件管理

    文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护

  • 设备管理

    设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括:缓冲管理、设备分配、设备处理和虚拟设备等功能

2.操作系统作为用户和计算机硬件系统之间的接口

操作系统提供的接口可分为两类:

  • 命令接口,用户利用这些操作来组织和控制作业的执行

    按照作业控制方式的不同,可将命令接口分为联机命令接口和脱机命令接口

    • 联机命令接口又称为交互式命令接口,适用于分时或实时系统的接口。联机命令接口就类似于cmd窗口,用户输入一条指令,计算机就执行响应的命令解释程序
    • 脱机命令接口又称批处理命令接口,适用于批处理系统,它由一组作业控制命令组成。脱机命令用户不能直接干预作业的运行,而应事先用相应的作业控制命令写成一份作业操作说明书,连同作业一起提交给用户。
  • 程序接口(也称广义指令),编程人员可以使用它们来请求操作系统服务

3.操作系统实现了对计算机资源的扩充

没有任何软件支持的计算机称为裸机,它仅构成计算机系统的物质基础。裸机在最里层,其外层是操作系统。操作系统所提供的管理资源功能和方便用户的各种服务功能,将裸机改造成功能更枪、使用方便的机器;通常将覆盖了软件的机器称为扩充机或虚拟机。

操作系统的分类和发展

手工操作阶段

用户在计算机上进行的所有工作都需要人工干预,如程序的装入、运行、结果的输出等。

手工操作阶段两个突出的缺点:

  1. 用户独占全机,虽然不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。
  2. CPU等待手工操作,CPU的利用不充分

批处理阶段(操作系统开始出现)

image-20230320134848220

为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾。

单道批处理系统

系统对作业的处理式成批进行的,但在内存中始终保持一道作业。引入了脱机输入/输出技术,并由监督程序负责控制作业的输入、输出。

主要优点

缓解了一定程度的人机速度矛盾。资源利用率有所提升。

主要缺点

内存中仅能有一道程序运行,只有该程序结束后才能调入下一道程序。CPU有大量的时间实在空闲等待I/O完成。资源利用率依然很低。

特点

  • 自动性 在顺利的情况下,磁带带上一批作业能自动逐个运行,而无需人工干预
  • 顺序性 磁带上的各道作业完成顺序和它们进入内存的顺序在正常情况下一致
  • 单道性 内存中仅有一道程序运行
多道批处理系统

image-20230320134836821

多道程序允许多个程序同时进入内存并允许它们在CPU中交替地运行,这些程序共享系统中的各种硬/软件资源。

主要优点:多道程序并发执行,共享计算机资源,资源利用率大幅度提升,CPU和其他设备更能保持忙碌状态,系统吞吐量增大。

主要缺点:用户相应时间长,没有人机交互功能(用户提交自己的作业后只能等待计算机处理完成,中间不能控制自己的作业执行)

多道程序设计的特点多道、宏观上并行、微观上串行

  • 多道。计算机内存中存放多道相互独立的程序。(区别于单批道处理)

  • 宏观上并行。同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕。

  • 微观上串行。内存中的多道程序轮流占有CPU,交替执行。

分时操作系统

分时技术 把处理器的运行时间划分为很短的时间片,按时间偏轮转把处理器分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时停止运行,把处理器让给其他作业使用,等待下一轮再继续运行。

分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。

主要优点

用户请求可以被及时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

主要缺点

不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

实时操作系统

主要优点:

能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

在实时操作系统的控制下,计算机系统接收道外部信号及时处理,并且要在严格的时限内处理完事件,实时操作系统的主要特点是及时性和可靠性。

按照事件限制可以将实时操作系统分为两类:

  • 硬实时系统。保证某个动作必须绝地在规定的时刻(或规定的时间范围)内完成。如飞行器的飞行自动控制系统。
  • 软实时系统。能接收偶尔的违反时间规定并且不会引起任何永久性的损害。如飞机订票系统……

其他几种操作系统

网络操作系统

是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中的各种资源的共享(如文件共享)和各种计算机之间的通信

分布式操作系统

主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,并由它们并行、协同完成这个任务

个人计算机操作系统

如WindowsXp、MacOs

✨操作系统运行环境

image-20230320143910657

处理器运行模式

image-20230320150201395

通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序(即系统外层的应用程序,简称“应用程序”),对操作系统而言这两种程序的作用不同,前者是后者的管理者,因此内核程序要执行一些特权指令,而应用程序则出于安全考虑不能执行这些指令。

  1. 特权指令,是指不允许用户直接使用的指令,如I/O指令、置中断指令等。(用程序状态寄存器PSW来标记用户态和内核态)
  2. 非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是防止用户程序对系统造成的破坏。

用户态和特权态

CPU的运行模式被划分为用户态(目态)和核心态(管态、内核态)。

应用程序运行在用户态,操作系统的内核程序运行在核心态。

在核心态时CPU可以执行特权指令,切换到用户态的指令也是特权指令。应用程序先操作系统请求服务时通过使用访管指令,从而产生一个中断事件将操作系统的转化为核心态。

image-20230320145252507


内核

image-20230320151147196

内核是计算机上配置的底层软件,它管理着系统的各种资源,可以看作是连接应用程序和硬件的一座桥梁

大多数操作系统的内核包括4方面的内容

1.时钟管理

操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过中断的挂你,可以实现进程的切换。例如分时操作系统中采用的时间片轮转调度。

2.中断机制

引入中断机制的初衷时提高多道程序运行环境中的CPU利用率,而且主要是针对外部设备的。中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。

3.原语

一般将具有以下三种特点的程序称为原语

  1. 处于操作系统的最底层,是最接近硬件的部分
  2. 这些程序具有原子性,其操作只能一气呵成(出于安全性和便于管理考虑)
  3. 这些程序的运行时间都较短,而且调用频繁

定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后子啊打开中断。

4.系统在控制的数据结构及处理

为了有效管理系统中用于登记状态的信息(如作业控制块、进程控制块PCB、设备控制块、各类链表等),操作系统需要一些基本的操作,一般有以下三种:

  1. 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块
  2. 存储器管理。存储空间分配回收、内存信息保护程序、代码对换程序等
  3. 设备管理。缓冲区管理、设备分配和回收等

中断和异常

定义

中断也称为外中断,是指来自CPU执行指令的外部的事件,通常用于信息输入/输出。时钟中断,表示一个固定时间片已到,让处理机计时、启动定时运行任务等。

异常也称内中断,是指来自CPU执行指令内部的事件,如程序非法操作码、地址越界、运算溢出等事件。异常不能被屏蔽,一旦出现,就应立即处理。

image-20230320154040556

分类

外中断可分为可屏蔽中断和不可屏蔽中断。

  • 可屏蔽中断 是指通过INTR线发出的中断请求,通过改变中断字可以实现多重中断,从而使中断处理更加灵活。如打印机中断
  • 不可屏蔽中断 使指通过NMI线发出的中断请求,通常是紧急的硬故障,如电源掉电等

异常可分为:

  • 故障。通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0等
  • 自陷。是一种事先安排的“异常”事件,用于用户在用户态下调用操作系统内核程序,如条件陷阱指令
  • 终止。是指出现了使得CPU无法继续执行的硬件故障,如控制器出错,存储器出错等。

故障异常和自陷异常属于软中断,终止异常和外部中断属于硬件中断。

中断机制的基本原理

不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号类型去查询中断向量表,以此来找到响应的中断处理程序在内存中的存放位置。

image-20230320155446697

系统调用

系统调用 是指用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。

凡是与资源有关的操作(如存储分配、I/O传输及管理文件等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

image-20230320160438982

系统调用的流程

image-20230320161005499

例如给定一个应用程序,里面包含了很多的指令。而这个程序刚好要执行一个fork指令,那么这个程序所包含的指令中就会有多个传参的指令,这些指令用于指定系统调用的类型“fork”、以及对应的参数保存到几个寄存器中。在传参指令后是一个陷入指令,CPU接收到一个陷入指令时引发一个Trap(内中断中的自陷)。这个时候CPU通过修改PSW(程序状态寄存器)的标记,系统状态转变为核心态。此时系统调用程序根据寄存器中的参数来判断用户需要哪种服务,根据中断向量表,可以找到fork系统调用的处理程序在内存中的位置。然后CPU就会去执行这个fork对应的处理程序,系统调用程序处理结束后CPU又会重新修改PSW中的标志,使得CPU重新回到用户态。

操作系统体系结构

image-20230320165641073

微内核和大内核

内核时操作系统最基本、最核心的部分。

实现操作系统内核功能的那些程序就是内核程序

image-20230320170321488

大内核

将操作系统的主要功能模块都作为系统内核,运行在核心态

优点 高性能

缺点 内核代码庞大,结构混乱,难以维护

微内核

只把最基本的功能保留在核内

优点 内核功能少,结构清晰,方便维护

缺点 需要频繁地在核心态和用户态之间切换,性能低

分层结构、模块化、外核

image-20230320181017034

分层结构

image-20230320182146267

模块化

模块化是将操作系统按功能划分为若干个具有一定独立性的模块。每个模块具有某一方面的管理功能,并规定好模块间的接口,使模块之间能通过接口进行通信。还可以进一步将各模块细分为若干个具有一定功能的子模块,同样也规定好各子模块之间的接口。

image-20230320182446932

外核

地址的分配减少了一次地址的映射,提升了效率。

image-20230320183256720

操作系统引导

开机的过程

image-20230320184015329

操作系统引导

  1. CPU从一个特定的主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
  2. 将磁盘的第一块——主引导记录读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作

完整的操作系统初始化程序在目录/Windows/Boot

image-20230320184444118

虚拟机

虚拟机

使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Wirtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统

同义术语:虚拟机管理程序/虚拟机监控程序/Virtual Machine Monitor(VMM)/Hypervisor

image-20230320185137421

第一类VMM直接运行在硬件上的实现:

CPU给各个虚拟机划分不同的时间片,内存也分配一些独立的空间。

上层操作系统的特权指令被虚拟机管理程序拦截并转化

image-20230320185903006

支持虚拟化的CPU往往支持更多等级的指令等级
image-20230320190451273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值