1、什么是操作系统
- 没有一个完整、精准、公认的定义;
- 从功能和特点来介绍操作系统;
从功能来区分,操作系统可以对上或者对下这两个层面来理解,对上是对用户或者应用程序提供服务,从用户角度看,操作系统是一个控制软件,管理应用程序。另一方面,操作系统可以为应用程序提供服务,比如提供IO服务,对网卡的访问等。从资源管理看,CPU是有资源的,内存是有资源的,还有不同的外设,这些都是资源,这些资源都需要操作系统去进行管理,使得不同的时刻有不同的程序对资源进行访问。
1.1 操作系统内部组件:
- CPU调度器
- 物理内存管理
- 虚拟内存管理
- 文件系统管理
- 中断处理与设备驱动
1.2 操作系统的特征
- 并发:计算机系统中同时存在多个运行的程序,需要OS管理和调度,由操作系统确定当前运行哪一个程序;这里需要注意并行和并发的区别,并发指的是在一段时间内有多个程序可以运行,并行是在一个时间点上有多个程序可以同时执行,并行要求操作系统有多个CPU,这样才能在多个CPU上同时运行多个程序;
- 共享:操作系统是一个资源管理系统,需要高效得将资源给不同的程序进行使用,表面上程序可以同时访问内存,同时访问CPU,其实在内存中是分时访问或者互斥访问,在一个时间点上只有一个程序可以访问一个资源。比如说一块内存,在一个时间点上对于某一个内存单元,只能有一个程序访问;但是如果将一个内存分为两半,A块和B块,两者是隔离的,那么两个程序就可以同时访问这两个不同的内存单元。这就是互斥共享或者是同时共享。
- 虚拟:利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务;操作系统直接面对的是硬件,虚拟化就是将CPU虚拟化为进程,把磁盘虚拟化为文件,把内存虚拟化为地址空间,虚拟化之后使得应用程序或者用户感觉到在独自使用一台计算机。
- 异步:程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知;但只要运行环境相同,OS需要保证程序的运行结果也要相同。