操作系统把CPU、硬盘和内存这三部分物力资源抽象成CPU上的进程,硬盘上的文件,内存上的地址空间来给我们的应用程序使用。

另外操作系统也启到了承上启下的作用,操作系统其实是一个特殊的软件,称为系统软件,它是直接面向硬件的,他和一般应用程序不一样,一般应用程序,要访问资源其实是我们操作系统提供的,它并不能直接去访问哪些物理资源,特别是各种各样的外设资源,外设资源是由操作系统来统一管理的。给上面提供统一的接口,这样上面应用程序就很方便的访问这些抽象接口,而不用考虑底层硬件琐碎的细节。
操作系统是在应用程序和硬件中间的这么一个层次。

操作系统是管理硬件资源的,硬件资源主要有3大块:CPU、内存和磁盘,这是主要的,当然还是其它的,网卡 声卡 显卡等等,这些都是在操作系统管理范围内的。
CPU的管理就涉及到CPU的调度,进程线程管理,
内存,物理内存管理和虚拟内存管理,虚拟内存主要是给上层应用提供相对独立,一个尽可能大的空间去使用,通过一系列的手段,在有限的物理内存空间虚拟出一个更大更方便,安全的虚拟环境,
磁盘,通过文件系统以文件的形式给应用程序提供存储和访问。
还有一个跟底层相关,就是中断处理和IO设备驱动,这一块是跟我们底层硬件直接打交道的。
操作系统的特征:
第一个特征是并发,为什么这么说呢?因为我们可以在计算机操作系统放多个配置好的程序,让操作系统调度选择哪个程序占用CPU去运行,这里可以看出有一个并发管理的过程。
这里面需要注意一个术语就是并发和并行,并发指的是在一段时间内,有多个程序可以运行,是一段时间内,这一段时间可长可短。而并行呢,是在一个时间点上有多个程序可以同时执行。
更多来说,能够并行执行的程序呢,它一般要求计算机系统里面存在多个CPU,但是如果计算机系统里面只有一个CPU,他是无法完成并行操作的,就是说他不能同时让两个程序在一个时刻都在跑,都在占用CPU,这是不太现实的。
第二个特征是共享,我们前面讲到操作系统是一个资源管理器,它就存在怎么去有效的让这些资源共享给我们不同需要这些资源的应用程序,表面上看呢,我们可以做到同时去访问资源,比如同时访问内存,同时访问IO,但其实在操作系统内部是互斥共享访问或者分时访问,就是在一个时刻,只有一个程序访问这个资源。
第三个特征是虚拟,操作系统直接面向硬件,他把硬件虚拟化了,虚拟化什么意思?比如说,我们把CPU虚拟化成进程,把磁盘虚拟化成文件,把内存虚拟化成地址空间,虚拟化之后带来一个好处,使得我们每一个应用程序或者每个用户感觉自己在独自拥有一台计算机,独占一台计算机,给大家提供这么一种服务,这种服务是通过操作系统虚拟的功能来完成的。这是多道程序里面常见的一种设计方式,就是把一台物理机器虚拟成多台机器,在操作系统之下就可以完成这样的功能。
第四个特征是异步,由于在计算机里面,通过操作系统管理和调度可以跑多个程序,但是只有一个CPU的情况下,可能在任何一个时刻只有一个程序在跑,使得下一个程序什么时候跑,取决于操作系统的调度。所以说下一个程序什么时候跑,什么时候停,什么时候继续运行,那取决于我们这个系统整个的一个管理,所以我们看到的现象是什么呢?是说我们这个程序走一段,停一段,走一段停一段,而这个走走停停的时间还不确定,就说是一种不可预知的这种异步的执行过程。
但是一方面也要需要注意,虽然这个执行步骤感觉是走走停停啊,什么时候结束啊?不太可预知,但是我们说如果说这个程序运行前的这个环境是相同的话,最后的输出就是它的结果。应该是相同的,这是要保证的,如果说你这个结果都不一致了,在相同的输入情况下,就是每次我跑一次程序得到的结果都不一样,那你这计算机,那他完成了这个操作系统管理功能就失败,我们希望是说算一个加法,一定是1+1=2,不会算1+1=3。即使是异步他也要保证结果是正确的,如果结果不正确那说明我们的程序设计或者操作系统是有一些错误我们需要去修正它。
总结下来操作系统具有4个特征,并发、共享、虚拟、异步

操作系统作为系统软件管理硬件资源,如CPU、内存和磁盘,通过进程、文件和地址空间进行抽象。它提供并发性,允许多个程序在一段时间内执行,但不是所有程序在同一时刻并行运行。操作系统实现资源共享,虚拟化硬件,以及异步执行,确保程序在不可预知的执行间隔中仍能产生可预测的结果。

被折叠的 条评论
为什么被折叠?



