一、什么是操作系统
操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
(1)从使用者角度而言:
操作系统是一个控制软件,控制系统上这些软件的运行,并为它们分配资源
同时也为应用程序提供一些服务(声卡、网卡等)
(2)从硬件角度而言:
操作系统是一个资源分配器,对计算机的内存、外设等各种资源进行控制,来提高资源利用率为底层硬件提供管理、控制、服务
(3)从计算机内部角度而言:
操作系统把CPU抽象成进程,磁盘抽象成文件,内存抽象成地址空间
二、操作系统架构层次
操作系统处于中间位置,位于硬件之上,应用程序之下
首先操作系统是一个软件,与其他软件的不同之处是操作系统面向硬件。
当其他软件需要访问物理资源时,都是由操作系统先调用再提供服务的。
在软件的体系结构中,操作系统属于系统软件,位于应用软件的层次下,可以为应用软件提供服务,功能软件就是编译器和动态共享库之类的。
三、操作系统软件的组成
在操作系统层面的软件有两个对外接口,一个是面向应用程序的Shell接口,另一个是面向内部资源管理的Kernel接口
Shell接口例如 GUI 为计算机用户提供图形化界面,还有命令行方面的Shell,在传统的Linux和Unix系统中通过一些命令行来完成一些功能
我们可以这样理解,Shell是计算机系统对外部提供的一些可见的服务,Kernel是操作系统在内核中完成了的功能。
四、操作系统的内部组件
操作系统内部主要由一下几个部分组成:CPU调度器、物理内存管理、虚拟内存管理、文件系统管理、中断处理与设备驱动
五、OS Kernel的特征
(1)并发
- 当计算机系统中同时存在多个运行的程序,需要OS管理和调度
- 并发与并行的区别:
并发:在一段时间上多个程序同时执行
并行:在一个时间点上多个程序同时执行【需要计算机具备多个CPU】
(2) 共享
表面上是同时访问资源,实际上是互斥共享或分时访问,在一个时间点上只有一个程序访问一个资源【例如一个内存的某一个内存单元】
如果想同时访问,可以将这块内存分成两份相互隔离的内存块,那么就可以让两个程序同时访问这块内存的不同的内存单元
(3) 虚拟
把硬件虚拟化,利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
(4) 异步
程序的执行不是一直执行,而是走走停停的,但只有程序运行前的环境相同,OS需要保证程序运行的结果也相同