什么是操作系统

从功能来区分,分为对上和对下两个层面来理解。

  • 一方面:管理控制程序:对上是对用户,对应用程序提供服务,从这个角度来理解,操作系统是一个控制程序,它可以控制这些软件怎么来运行。同时限制不同的应用程序来占用不用的资源。操作系统还会给程序提供各种各样的服务,比如IO服务,声卡访问,网卡访问,包括杀死进程等。
  • 另一方面:资源管理:对下是对它内部管理来说,它是一个资源分配的管理器,在操作系统里有各种各样的资源,比如cpu、内存、不同的外设,如何协调好这些资源,使得不同的程序在不同的时刻能访问不同的资源。从而使公平、共享整个操作系统的资源。包括效率、资源利用率得到很大的保障。

    总体来讲,操作系统是从管理的角度给我们的应用程序、底层的硬件提供相应的管理、控制和服务的功能。操作系统层次架构:硬件之上,应用程序之下,意思就是应用程序访问各种外接设备、磁盘、cpu等,需通过操作系统提供的接口来访问这些物理资源。

操作系统内部组件

  • CPU调度器
  • 物理内存管理
  • 虚拟内存管理
  • 文件系统(磁盘)管理
  • 中断处理与设备驱动

操作系统内核特征

1、并发 - 同时运行多个程序
并发是指在一段时间内,有多个程序可以同时运行,注意是一段时间,这一段时间可长可短。这代表并发。
并行是指在一个时间点上,有多个程序可以同时运行。并行要求存在多个CPU。只有1个CPU,是无法并行的。
2、共享 - 将资源共享给不同的应用程序
表面上看,可以同时去访问这个资源,比如同时访问内存,同时访问IO,但其实在操作系统内部,
变成了一个互斥共享访问或者分时访问,就是在一个时间点上,只有一个程序访问一个资源。
当然这与资源力度相关,比如我们一块内存,那么在一个时间点上,对于某一个内存单元,只能有一个程序来访问。
但是如果这一块内存,分为2半,他们之间是隔离的,那就可以同时让两个程序,同时访问不同的内存单元。
这就涉及到怎么共享的问题,互斥共享和同时共享,这个要具体根据资源特征来区分。
3、虚拟 - 把硬件虚拟化
把CPU虚拟化进程,把磁盘虚拟化文件,把内存虚拟化地址空间。
利用多道程序设计技术,让每个程序都觉得有一个计算机专门为他服务。这是通过虚拟的功能来完成的。
4、异步 - 通过操作系统管理和调度同时跑多个程序
但是只有1个cpu的情况下,任何时刻只能有一个程序再跑,下个程序什么时候跑,取决于操作系统的调度和管理。
现象就是程序走一段、停一段、走一段、停一段。这个走走停停时间并不确定。是一种不可预知的异步的过程。
不过可以保证的是,从程序运行前到程序运行后,得到的处理结果都是一样的,虽然异步,但一定保证1+1=2。

操作系统结构