计算机系统概述

        操作系统的基本概念:操作系统的四大特征是:并发、共享、虚拟、异步。

        并发(Concurrent)是指计算机在运行程序时在同一个时间间隔内有多个程序可以同时运行,需要与并行(Parallel)区分,并行是指在同一个时刻有多个程序在同时运行。

        共享指的是,涉及多个系统资源,不同的程序可以共享使用这些资源,又分为互斥共享方式(一段时间内只能有一个进程访问该系统资源)和同时访问模式(允许相同的资源可以由不同的进程中同一段时间内访问)。

        虚拟:操作系统对用户程序提供硬件资源时会对其进行虚拟化,比如内存虚拟化,这样可以使逻辑地址空间大于物理地址空间,又比如CPU的时间片轮转,可以让多个用户程序认为自己独占CPU,而实际上是时分复用的。

        异步:多道程序环境允许多个程序并发执行,程序以不可预知的速度向前推进操作系统需要保证只要运行环境相同时,多次运行进城后都能获得相同的结果。

        操作系统需要完成以下功能:处理机管理(涉及进程管理)、存储器管理、文件管理和设备管理。

        操作系统对外暴露的接口分为两种:一种是命令接口,又分为联机命令接口和脱机命令接口。联机命令接口形如CMD命令行,输入一条命令,执行一条命令。脱机命令接口:.bat文件,输入多行命令,执行时一起执行。

        另一种是程序接口:由一系列系统调用构成,用户程序需要使用系统调用来请求操作系统的服务。例如c语言的printf函数,申请内存,socket通信等。

操作系统的发展历程:

        1、手工操作系统:此时操作系统还没有诞生,计算机运行程序需要人工干预:装入,计算机执行,输出。

        2、批处理阶段:OS开始出现,分为单道批处理系统:事先写好多段程序,再一起装入计算机批量运行,再批量输出。具有自动性(每一段程序都能自动被逐个运行),顺序性(根据程序放入的顺序来按序执行),单道性:内存中只有一道程序执行。

        多道批处理系统:允许多个程序同时进入内存在CPU中交替运行。CPU和其他I/O设备之间并行,即CPU在忙碌时,I/O设备也可以做其他任务保持忙碌。优点:资源利用率高,系统吞吐量较大。缺点是用户响应的时间较长,不具备人机交互能力。

        3、分时操作系统:允许多个用户使用操作系统,操作系统分时为每个用户提供服务,多个用户之间相互独立。每个用户能及时得到响应。具有人机交互的功能,缺点是不能优先处理紧急任务。

        4、实时操作系统:拥有及时性和可靠性,需要对外部的时间做控制对象规定时间内做出响应。分为硬实时操作系统:飞行自动控制系统等。软实时系统:飞机订票系统(可以偶尔违反时间规定不会引起任何永久性损害)。

中断和异常:

        异常:在执行指令过程中,在CPU内部发生的相关事件,可以分为:故障(fault)、自陷(trap)和终止(abort)。

        故障:软件中断,可能被操作系统修复,并将CPU重新归还给进程。比如缺页故障,除0操作、运算溢出等。

        自陷:当前运行的进程自愿放弃CPU执行,可能是为了请求相关的系统调用而执行了访管指令,又或者是等待某个系统资源而主动放弃CPU。

        终止:硬件中断,发生了硬件错误,如控制器出错、存储器校验错等,某个用户程序执行了某条特权指令也可能发生。操作系统会杀死相关进程,不再归还CPU。

        中断:来自于CPU外部的中断事件,比如I/O请求、时钟中断等。分为可屏蔽中断和不可屏蔽中断,可屏蔽中断通过INTR线来发出中断请求,不可屏蔽中断通过NMI线来发出中断请求。

        操作系统为用户程序提供系统调用,系统调用按功能可以分为以下几类:

        1、设备管理

        2、文件管理

        3、进程控制

        4、进程通信

        5、内存管理

        由于安全性考虑,CPU上运行的指令分为非特权指令和特权指令,用户程序只能使用非特权指令,而操作系统内核使用特权指令来对硬件进行管理。CPU可以通过自身的标志寄存器(PSW)来获知自己处于用户态还是内核态,用户态下只能执行非特权指令,内核态下可以执行所有指令。若处于用户态执行了特权指令,会触发异常。

        在应用程序通过访管指令请求操作系统的服务时,会引发中断,首先会由硬件去保存PC的值和PSW寄存器的值,之后硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址(由操作系统初始化),接下来将执行中断服务程序,保存现场:中断屏蔽字,通用寄存器的值等。

操作系统结构

        对于操作系统的设计和实现,可以有以下四种方法:

 1、分层法:

        将操作系统分为若干层,最底层为硬件,最高层为用户接口,底层向上层提供服务,上层依靠下层提供的服务完善功能。每层只能调用紧邻自己的底层的功能和服务(单项依赖)。

        优点是:易扩充和维护,方便调试和验证。

2、模块化:

        将操作系统按照功能划分为一个个独立的模块,模块之间可以相互调用,每个模块自己也能细分为各个子模块,需规定好模块之间的:提高了操作系统的正确性、可维护性和可理解性。增强了可适应性,加速了操作系统的开发过程。缺点:模块的接口规定很难满足对模块的实际需求。各模块齐头并进,难以调试和验证。

3、宏内核

        将系统的主要功能模块都作为一个紧密联系的整体运行在核心态,宏内核具有缺乏可扩展性而不方便移植,可靠性较低(某个模块崩溃可能使整个操作系统崩溃),占用内存空间大,但是相对于微内核速度更快(不需要频繁地在用户态和内核态中切换)的优点。

 4、微内核

        将操作系统最基本的功能保留在内核,不需要在核心态运行的功能移到用户态去运行,从而降低内核设计复杂性,保留的最基本核心的功能包括:进程管理、原语、低级存储器的管理和中断处理。(将与硬件紧密联系的功能保留)。微内核的优点为:扩展性和灵活性,可靠性和安全性、可移植性。策略与机制相分离,但是相比宏内核,由于需要频繁切换状态,因此较低效。

5、外核

        在程序请求磁盘资源时,将实际的物理磁盘的一部分直接分配给该程序,减少映射层,但是外核操作系统需要保证这种分配的安全性。

操作系统引导:

        按下电源键后,由主存的ROM区给予CPU第一条指令,通过执行JMP指令跳转到BIOS,CPU读取ROM区的BIOS程序,登记BIOS中断例程入口地址,再启动硬件自检,之后读取磁盘中的主引导记录MBR,是一段程序,这段程序会扫描硬盘分区表,可以从中找到装有操作系统的分区。之后开始加载装有操作系统的硬盘活动分区:分区引导记录PBR,也是一段程序,PBR运行后,找到根目录下用于引导操作系统的程序(启动管理器),加载启动管理器,再加载操作系统。

虚拟机

        1、第一类虚拟机管理程序:虚拟机管理程序工作在硬件之上,操作系统工作在虚拟机管理程序之上,操作系统的特权指令由虚拟机管理程序检验并根据指令模拟硬件真实行为返回给操作系统。可移植性差,但是性能较高。

        2、第二类虚拟机管理程序:虚拟机管理程序工作在操作系统之上,宿主操作系统运行在硬件之上,对于客户操作系统,虚拟机管理程序仍然伪装成具有CPU和各种设备完备的计算机,第二类虚拟机管理程序部分运行在用户态,部分运行在内核态,Guest OS发出的系统调用会转换成虚拟机管理程序对Host OS的系统调用。可移植性好,但是性能较差。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值