什么是操作系统
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
下面来详细的讲讲操作系统处于中间都做了哪三件事
1)举个例子来解释操作系统作为系统资源的管理者都做了什么
我们要用qq跟朋友视频聊天,首先要找到qq.exe,这是文件管理,我们点击qq,要读取相应的数据,这是存储器管理,运行qq,需要把它放到处理机(CPU)上,这是处理机管理,通过摄像头跟朋友聊天,这是设备管理。
2)操作系统向上要提供一些接口来供调用,具体如下图
3)作为最接近硬件的层次操作系统做了什么呢,我们买回来一个裸机,没有任何软件支持,这时我们给他安上操作系统,操作系统就可以提供资源管理和方便用户的服务功能,将裸机变得更强大,简单点说是什么意思呢,就是操作系统是个很厉害的工匠,他把硬件给打造成各种各样容易使用的工具,这时用户就可以直接使用这些工具而无需去了解硬件到底是怎么工作的
操作系统的特征
并发并发:指两个或多个事件在同一时间间隔内发生,这些时间宏观上同时发生,微观上交替发生。
这里需要与另一个概念区别一下-并行
并行:指两个或多个事件在同一时刻同时发生。
这怎么理解呢,比如说我们的电脑是四核的,那么我就可以有四个应用并行,但是我们还有一些系统软件他要运行,甚至说,我们一般会打开不止四个软件,那通过我们日常生活我们可以发现,他们都在运行呀,这就是宏观上同时发生,微观里交替发生
共享共享:系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享我们可以通过举一个日常的栗子来解释一下,比如说我们想同时用微信和qq和朋友们视频聊天,虽然这个进程是可以给微信,qq都使用这个视频资源的,但是在同一时间段内,他只会分给一个进程用,因而会返回给我们另一程序占用摄像头的信息。
同时共享我们也可以举一个小栗子,比如说,我们从qq,微信上下载东西,我们发现他俩都在正常的下载,都在访问硬盘资源,这就是同时共享,但需要注意的是,在微观上,他们还是交替进行的。也有时候在微观上也在同时发生,比如说扬声器同时播放游戏中的音乐和网易云的音乐。
并发和共享的关系解释一下为啥他俩互为存在条件,我们先来说说没有并发怎么了,同样拿微信和qq来说,如果没有了并发,那么就是说,在同一时间段只有一个程序运行,那么共享就失去了意义。那要是没有共享呢,也就是说我的资源只给一个,那么我另一个程序的不到资源去运行,也就无法并发。
虚拟先给一个有点难懂的概念->虚拟就是把物理实体变为若干个逻辑上的对应物。物理实体是客观实在的,逻辑上的对应物是用户感受到的。
emmmmmm举个栗子,比如说我们的电脑只有4GB的内存,单核(物理实体),但是我的游戏就已经4GB了,我还有qq,网易云。。。等等等等的软件,那他们都能同时运行,我就觉得我的内存远大于4GB,有好几个核,这就是逻辑上的对应物。
那我们再来想想如果没有了并发,我只需要同一时间段内运行一道程序,那就谈不上虚拟性了
异步异步是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,并不能一贯到底,而是要走走停停,以不可预期的速度向前推进,这就是进程的异步性。
举个生活中的小栗子,外卖小哥要送好多份外卖,但是路线不一样,有可能顺路,有可能一部分顺路一部分不顺路,那这就是一个并发过程,针对我这份外卖,他只能是这个小哥送->资源有限,不能一贯到底->不可预期的速度前进,这就是异步性。
OS发展与分类
运行机制
让我们来捋一捋,操作系统的内核程序是系统的管理者,既可以执行特权指令,又可以执行非特权指令,运行在核心态。应用程序只能执行非特权指令,运行在用户态。那么问题来了,则么判断处理器在哪个状态呢->程序状态字寄存器(PSW)中某个标志位来标识当前处理器处于哪个状态,如0为用户态,1为核心态。那什么是特权指令什么是非特权指令,简而言之,特权指令就是类似于内存清零这种有危险的指令,非特权指令就是普通的指令,不会对系统造成很严重的影响。
操作系统的体系结构
操作系统的内核最接近硬件,是操作系统最基本最核心的部分,实现操作系统内核功能的那些程序就是内核程序。
首先来看看一些基本概念:
时钟管理:实现计时功能
中断处理:实现中断机制
原语:是一种特殊的程序,处于操作系统的最底层,是最接近硬件的部分;这种程序的运行具有原子性,只能一气呵成的运行,不可中断;运行时间较短,调用频繁。
上图中给出的其实是大内核,还有微内核,因而有的操作系统是大内核,有的是微内核,微内核就是不包括进程管理,存储器管理,设备管理等功能,只保留最基本模块。
可能觉得晦涩难懂,这里举个栗子,把刚起步的公司比作大内核,这个时候公司几乎都是管理层,只有很少的下属,因而大部分工作都是管理层做的,这样就看出来了优点:性能高;接着来,因为分配严重不均,导致管理层做的太多,也就是内核代码庞大,难以维护。
那成立很久的大公司我们就可以把它比作微内核,管理层做的事少了,因而看出优点;再来说缺点,下属做完要来找管理层的确认,管理层确认完了再返回去,如此就是微内核的缺点。