操作系统学习笔记以及个人见解

操作系统

王道考研操作系统课程笔记以及一些个人见解

概念、功能、目标

最基础的:裸机(纯硬件)(需要学习计算机组成原理)

然后:裸机+操作系统 就是我们新买的电脑了

然后:安装应用程序

这些我们都知道:那什么是操作系统?

抄别人的话就是:

1.负责管理协调硬件、软件等计算机资源的工作

2.为上层的应用程序、用户提供简单易用的服务(我们觉得windows亲切)

3.操作系统是系统软件、不是硬件

用大白话,大多数人你只有装了操作系统,你才会用,你才能打游戏,用电脑上网。有点像我们要做Java开发,就要有JKD JRE环境一样

操作系统定义

操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

功能目标

作为系统资源的管理者

处理、存储、文件管理、设备管理都是它的工作

你是不是首先会想到有一个功能是调度进程工作,开一个进程操作系统怎么做?

执行前需要将该程序放到内存中,才能被CPU处理。他也得统一分配我们的设备

作为用户和计算机硬件之,间的接口

需要提供命令接口(有联机命令接口和脱机命令接口)、程序接口、GUI

那么什么叫联机命令接口?===>cmd 这种交互式的

什么叫脱机命令接口?====>bat文件,就是我们的批处理命令接口,有一堆指令

程序接口:如C: \Windows \System32\user32**. dll**程序员在程序中调用user32. dll (该调用过程即为
系统调用)即可实现创建 窗口等功能。只能通过用户程序间接使用。

操作系统的特征

操作系统的四大特征

并发、共享、虚拟、异步,并发、共享是最基本的特征,两者互为存在条件

并发

这个不用多说了吧,直接放一段PPT介绍吧

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
并行:指两个或多个事件在同一时刻同时发生。

操作系统的并发性指计算机系统中同时存在着多个运行着的程序。

一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些
程序微观上是交替执行的,但宏观上看起来就像在同时执行)

共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用

分为互斥共享同时共享,就字面意思

诶,有没有那味儿了?是不是在那见过这个,这句话很熟悉,工作内存和主内存好像就是这个区别的吧,主内存可以共享,但是工作内存只能本进程、实例用。

他俩什么关系呢?

如果同一时间段内,俩程序工作都要用内存、硬盘数据,你品、细品,如果缺少某一个条件,不能并发:那你共享个屁,缺少共享:同一时间段两者怎么发送同一个文件

虚拟

虚拟是指把一个物理上的实体变为若千个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上
对应物(后者)是用户感受到的。

这点emmm品吧,不好举例子,抄人家的例子吧

背景知识:一个程序需要放入内存并给它分配CPU才能执行

假如LOL需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内…我的电脑: 4GB内存
问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以在我的电脑上同时运行呢?

运用虚拟技术中的“空分复用技术

单核CPU的计算机中,用户打开了以下软件。…… LOL QQ 斗鱼 网抑云音乐

为啥能同时用呢?

事实上确实只有一个单核CPU工作,怎么伪装成了4个CPU呢?

时分复用技术:微观上处理机在各个微小的时间段内交替着为各个进程服务

这些技术,后面会详细提及

假如,电脑不能并发,那虚拟技术还干啥?需要他么?

异步

异步我们在开发中是不是经常遇到?异步请求、异步交互。那这里的异步跟我们的计算机操作系统的异步特征一样么?

我还是抄一段定义

异步是指,在多道程序环境下允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。emmm不一样,这有点像阻塞啊

OS的发展与分类

抄图看一下

在这里插入图片描述

手工操作阶段

没操作系统,只能写机器代码

主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低

单道批处理系统

引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出

这个监督程序就是操作系统的雏形
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
主要缺点:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/0完成。资源利用率依然很低。

多道批处理系统

也就是每次往内存输入多道程序,操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程
序的运行。各个程序并发执行

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

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

为何多到皮处理系统能使资源利用率大幅提升??

拿视频中的例子

在这里插入图片描述

在这里插入图片描述

分时操作系统

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

诶,这一点熟不熟悉,是不是我们的线程工作有一个什么时间片轮转的方式工作?

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

实时操作系统

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。不就是能插队么?

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

实时操作系统又分为,硬实时系统(必须在绝对严格的规定时间内完成处理)软实时系统(能接受偶尔违反时间规定)

其他的操作系统

网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。( 如: Windows NT就是
一种典型的网络操作系统,网站服务器就可以使用)

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

运行机制、体系结构

两种指令

特权指令:如内存清零指令(不允许用户使用)

非特权指令:如普通的运算指令

CPU怎么判断是否可以执行特权指令呢?

两种处理器的状态

用户态:又称目态

核心态:又称管态

程序状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态。如0为用户态,1为核心态

我们是不是也在那听说过这两个词?

两种程序

内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。

应用程序:为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态

操作系统内核

最接近底层的操作系统的一部分称为内核

我抄张图

在这里插入图片描述

内核又可以分为时间管理中断处理原语(装备驱动、CPU切换等)

时钟管理:实现计时器功能、我们常见的什么进程切换、进程调度基于时钟管理

原语:原语是一种特殊的程序。是最接近硬件的部分,这种程序的运行具有原子性。运行时间短、频繁调用

有的操作系统不把这部分功能(进程管理、存储器管理、设备管理等功能)归为“内核功能”。也就是说,不同的操作系统,对内核功能的划分可能并不一样

体系结构

我抄一张图

在这里插入图片描述

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

优点:高性能
缺点:内核代码庞大,结构混乱,难以维护

微内核只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低

猜你喜欢

转载自blog.csdn.net/qq_22155255/article/details/111998490