今天早上瞄了一眼发现诶?周二下午周五早上有空课。那正好提前把操作系统给搞了,又不难23333。
参考视频:王道考研——操作系统
第一章 操作系统概论
1.1 操作系统的概念功能与目标
我们生活中经常接触操作系统,有了很多的感性认识。现在我们全面学习一下他的结构。
1.1.1 操作系统的概念
购买电脑时我们一般买裸机,然后安装操作系统,最后使用各种应用程序。
操作系统位于硬件和软件之间。负责管理协调硬件,软件等计算机资源的工作。为上层应用程序、用户提供简单易用的服务。操作系统软件而不是硬件。
1.1.2 操作系统的功能和目标——作为用户和计算机硬件之间的接口
我们提出三个问题:
1、操作系统作为系统资源的管理者,需要提供什么功能呢?
2、操作系统为用户和计算机硬件之间的接口,需要实现什么功能
3、操作系统最为接近硬件,需要在纯硬件的基础上实现什么功能?
对于第一个问题:
需要提供处理机管理,存储器管理,文件管理,设备管理
目的是为了更安全高效的使用数据
(补充:进程是一个程序的执行过程,执行前需要将该程序放到内存中,才能被cpu处理。
比如用qq和朋友聊天:1、在文件夹中找到qq可执行文件的安装位置(文件管理)
2、打开QQ.exe把该程序相关数据放入内存(存储器管理)
3、对应进程被处理机CPU处理(处理机管理)
4、需要将摄像头设备分配给进程(设备管理)
对于第二个问题:
需要提供命令接口(联机、脱机命令接口)、程序接口,GUI
允许用户直接使用;通过程序间接使用;现代OS中最流行的图形用户接口
命令接口(允许用户直接使用)
联机命令接口,用户说一句,系统做一句(就是cmd交互式命令接口)
脱机命令接口,用户说一堆,系统做一堆(就是bat批处理命令接口)
程序接口(允许用户通过程序间接使用):是由一堆系统调用组成(新知识来了,.dll文件调用过程就是系统调用命令=程序接口=广义指令,比如说user32.dll可以实现创建窗口等功能。只能通过用户程序间接使用。)
GUI:图形用户界面,不需要要求用户再记忆繁琐的命令,参数。
提供这么多的功能的最终目标是:方便用户使用
对于第三个问题:
需要实现对于硬件机器的扩展。将裸机改造成功能更强,使用更方便的机器。通常将覆盖了软件的机器称为扩充机器,又称为虚拟机。
1.2 操作系统的四个特征
并发、共享、虚拟、异步
最基本的特征是前两个:并发和共享,两者互为存在条件。
1.2.1 并发
并发:指两个或多个事件在同一时间间隔内发生。宏观上是同时发生的,微观上是交替发生的。
区别并行和并发:并行是多个事件在同一时刻发生(微观上)
操作系统的并发性指计算机中同时存在多个运行的程序。
单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替进行。其实啊,操作系统就是随着多道程序技术出现的,因此操作系统和程序并发是一起诞生的。
当今的计算器很多的cpu都是多核的,这意味着同一时刻可以有4个程序并行执行;但是操作系统的并发性依然必不可少,当代人绝对需要4个以上的程序同时运行。
1.2.2 共享
共享就是资源共享,指系统中资源可供多个并发执行的进程共同使用。
两种资源的共享方式:1、互斥共享方式(一个时间段内只允许一个进程访问该资源)
2、同时共享方式(允许一个时间段内由多个进程“同时”对他们进行访问)这种同时往往是宏观的,微观层面上,这些进程可能还是分时共享的(但比如说扬声器就是同时输出游戏音频和音乐音频的)。
举例:互斥共享方式:使用qq和微信视频,摄像头资源只能分配给一个程序使用。
同时共享方式:qq发送文件A的同时微信发送文件B,两边都同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是相互交替着访问硬盘的。
补充:并发性和共享性的关系。如果失去并发性,系统只有一个程序在运行,则共享性失去存在的意义。如果失去共享性,那么qq和微信就无法同时访问硬盘资源,就无法实现同时发送文件,也就无法完成并发。
1.2.3 虚拟
虚拟指把一个物理上的实体变为若干个逻辑上的对应物。一个程序需要放入内存并给他分配CPU才能运行。
GTA5需要4G内存,qq256mb,迅雷256mb等等,这些程序同时运行需要的内存远远大于4G,那么他们为什么可以同时在电脑上运行呢?这是因为虚拟存储器技术,物理实体只有4G的内存,但在用户看来似乎远远大于4G空分复用技术;同样的,对于一个单核CPU的电脑,理论上只能同时运行一个程序呀,但是实际上只有一个单核CPU,但是在用户看来似乎有多个CPU在同时为他服务。这是典型的时分复用技术。
虚拟技术典型就是时分复用和空分复用。
显然,如果是去了并发性,那么一个时间段中系统只需要运行一个程序,那么就失去了实现虚拟性的意义。所以没有并发性,就没有虚拟性。
1.2.4 异步
异步指多道程序环境下,允许多个程序并发执行。但由于资源有限,进程的执行不是一贯到底的,而是走走停停,不可预知的速度前进,这就是进程的异步性。
如果失去了并发性,系统就只能串行执行。所以只有系统拥有并发性,才可能导致异步性。
总结:重点理解并发和并行的区别,并发共享互为存在条件,从而才导出了后面两个特性。
1.3 OS的发展与分类
OS的发展阶段基本可以分为:手工操作阶段、批处理阶段(单道批处理,多道批处理标志着OS出现)、分时操作系统、实时操作系统、以及现代的网络操作系统、分布式操作系统、个人计算机操作系统。
1.3.1 手工操作阶段
纸带机的阶段,用户独占整个机器,人机速度矛盾差异导致资源利用率极低。
1.3.2 批处理阶段
1、单道批处理阶段
引入脱机、输出技术(用磁带完成),并通过监督程序(操作系统的雏形)控制作业的输入输出。
优点:将纸带通过外围机保存在磁带上,一定程度环节人机速度矛盾,资源利用率提升
缺点:内存中只能有一道程序运行。CPU有大量时间是空闲等待I/O完成,资源利用率还是很低。
2、多道批处理阶段
每次往内存中输入多道程序,CPU并发执行多道程序。这其中需要中断技术,有操作系统负责管理这些程序的运行。此时操作系统诞生了。
优点:多到程序并发执行,共享计算机资源。资源利用率大幅提升,系统吞吐量大。
缺点:用户响应时间长,没有人机交互功能(提交程序后只能等计算机处理完成,中间不能控制自己的程序)
多道批处理的本质是流水线工程,通过空闲资源不断调佣来减少时间。
1.3.3 分时操作系统
计算机以时间片为单位轮流为每个用户、作业服务,各个用户可以通过终端与计算机进行交互。
优点:用户请求可以被及时响应,解决了人机交互问题。允许多个用于同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人存在。
缺点:不能优先处理一些紧急任务。操作系统对于各个用户、作业是完全公平的,循环为每个用户作业服务一个时间片,不区分任务的紧急性。
1.3.4 实时操作系统
优点:能够有限响应一些紧急任务,某些紧急任务无需时间片排队。
在实时操作系统控制下,计算机系统接收到外部信号后及时进行处理,并且在严格的时间限度内处理完成事件。实时操作系统的主要特点是及时性和可靠性。
实时操作系统分为硬实时和软实时两种实时操作系统。第一种必须在绝对严格的规定时间内完成处理(自动驾驶),第二种能够接受偶尔违反时间规定(12306购票)。
1.3.5 现代操作系统
网络操作系统:实现网络中各种资源的共享和各台计算机之间的通信。
分布式操作系统:分布性和并行性,任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务。
1.4 操作系统的运行机制及体系结构
1.4.1 运行机制
什么是指令?他们和我们平时说的代码有什么区别?一段代码经过预编译,编译,汇编,链接的步骤翻译成了机器语言指令。
指令是CPU能识别、执行的最基本命令。
有的指令人畜无害加减乘除,有的指令非常危险,内存清零rm -rf,为了避免其他用户把另一位用户的电脑搞坏,我们把指令分为两种:特权指令和非特权指令。特权指令不允许用户程序使用。
问题:CPU如何判断当前是否可以执行特权指令?
CPU分为两种状态,用户态(目态)和核心态(管态)。用户态只能执行非特权指令,核心态两种指令都可以操作。程序状态字寄存器PSW中标志位来表示当前处理器处于什么状态,用户态0核心态1。
再进一步我们把程序分为两种程序:内核程序,应用程序。内核程序是系统的管理者,能执行特权非特权指令,运行在核心态。应用程序运行在用户态。
总结:系统中存在着两种指令,两种处理器状态,两种程序。
1.4.2 操作系统内核
问题:那么操作系统中的哪些功能应该用内核程序实现呢?
我们使用计算机,安装完系统后有些功能比如记事本,任务管理器,即使没有任务管理器我们依然可以使用计算机。
这是因为操作系统可以分为内核功能和非内核功能。内核功能是最接近纯硬件的那部分,是计算机操作系统的核心。内核功能有:时钟管理,中断处理,原语(设备驱动,CPU切换等),在高一层进程管理、存储器管理、设备管理等功能。
时钟管理具有计时功能;中断程序负责实现中断机制;原语是一种特殊的程序,处于OS底层,是最为接近硬件的部分,这种程序运行具有原子性,只能一气呵成,不能中断。运行时间短,调用频繁。
对系统资源进行管理的功能:进程管理,存储器管理,设备管理,这几个功能有的操作系统将他们划分为内核功能有的不分,所以操作系统之间对于内核功能的划分也可能是不一样的。由此引出了操作系统的体系结构:大内核和微内核。
1.4.3 操作系统体系结构
大内核:
将操作系统的主要功能模块作为系统内核运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护。
微内核:
只把最基本的功能保留在内核中
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能较低。
总结:内核就像是企业的管理层,只有管理层才能执行特权指令,普通员工只能执行非特权指令。用户态,核心态之间的切换相当于普通员工和管理层的工作交接。
1.5 中断和异常
1.5.1 中断机制的诞生
本质:只要发生了中断,就意味着需要操作系统介入,开展管理工作。
CPU收到计时器部件发出的中断信号,切换为核心态对中断进行处理。
1.5.2 中断的概念和作用
1.5.3 中断的分类
分为内中断(又称异常)和外中断。
1.5.4 外中断的处理过程
插播:自制最简单的操作系统:在屏幕上显示文字
dasm dosbox mount masmobj linkexe notepad++b800前删掉512byte 生成img vmware虚拟机创建虚拟机(操作系统稍后导入) 创建软驱 导入img印象文件 操作系统完成 运行完成
直接跟ROM打交道OMG
不愧是高级工程师授课2333已经超越了传统授课的模式,真滴是从底层硬件着手写的,不需要安装操作系统,自己写一个印象文件就可以让计算机跑了这是什么神仙玩意儿我的天。上课引起兴趣下课还是得自己动手学点儿知识滴,比如引导程序的工作流程,分区的概念,为什么是7c00位置。
在这里推荐xinjiyuan97写的操作系统(一)系列课程,非常详细属于是。