操作系统概述
概念
负责管理协调计算机硬件、软件等计算机资源的工作,为上层用户、应用程序提供服务,是一种系统软件。
目标
在计算机系统上配置操作系统,其主要目标是:
- 方便性
- 有效性
- 可扩充性
- 开放性
作用
- 作为计算机系统资源的管理者
(补充:进程是一个程序的执行过程。执行前需要将该程序放到内存中,才能被CPU处理)
QQ进程交给CPU处理,当视频聊天时,系统分配摄像头设备给QQ进程。
- 作为用户和计算机硬件系统之间的接口
命令接口:允许用户直接使用
程序接口:允许用户通过程序间接使用
GUI:现代操作系统中最流行的图形用户接口
联机命令接口:用户说一句,系统执行一句;
脱机命令接口:用户说一堆,系统执行一堆;
程序接口:由一组系统调用组成;
联机命令接口实例(Windows系统):联机命令接口 = 交互式命令接口
windows + R
cmd
time
脱机命令接口 = 批处理命令接口
.bat
Windows执行脚本
程序接口
.dll
只能通过用户程序间接使用
在高级语言以及C语言中,往往提供了与各个系统调用一一对应的库函数,这样,应用程序便可通过调用对应的库函数来使用系统调用
- 实现了对计算机资源的抽象
特征
并发、共享、虚拟、异步。
1、并发:指两个或多个事件在同一时间间隔内发生。这些事件,宏观上是同时发生的,但是微观上是交替发生的。
(并行:两个或多个事件在同一时刻同时发生)
操作系统的并发性指的是计算机系统中同时存在着多个运行着的程序。
一个单核处理机(CPU)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)。
当今的计算机,一般都是多核CPU,比如Inter的第5代处理器就是4核CPU,这意味着同一时刻可以有4个程序并行执行,但是操作系统的并发性依然必不可少,当代人使用计算机绝对有4个以上的程序需要同时工作。
2、共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
系统中的某些资源,如打印机等,虽然可以提供给多个进程使用,但规定在一段时间内,只允许一个进程访问该资源。
把这种在一段时间内只允许一个进程访问的资源,称为临界资源(或独占资源)。
典型的可供多个进程"同时"访问的资源是磁盘设备。
3、虚拟:指的是在OS中,通过某种技术把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
相应地,把用于实现虚拟的技术称为虚拟技术,在OS中利用时分复用和空分复用技术来实现"虚拟"的。
(1)时分复用技术
在计算机领域,广泛利用时分复用技术来实现虚拟处理机,使得资源利用率得以提高。
时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
虚拟处理机技术:利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行。此时虽然系统中只有一台处理机,但通过时分复用技术,能实现同时(宏观上)为多个用户服务,使得每个终端用户都认为是有一个处理机在专门为他服务。
利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机。
(2)空分复用技术
在计算机中把空分复用技术用于存储空间的管理,用以提高存储空间的利用率。
如果说,多道程序技术(时分复用技术)是通过利用处理机的空闲时间运行其他程序,提高了处理机的利用率,那么空分复用技术则是利用存储器的空闲空间分区域存放和运行其他的多道程序,以此来提高内存的利用率。
但是单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术才能达到此目的。虚拟存储技术在本质上是实现内存的分时复用,使一道程序仅在远小于它的内存空间中运行。例如,一个100MB的应用程序之所以可以运行在30MB的内存空间,实质上就是每次只把用户程序的一部分调入内存运行,运行完成后将该部分换出,再换入另一部分到内存中运行,通过这样的置换功能,便实现了用户程序的各个部分分时地进入内存运行。
4、异步:在多道程序环境下,运行多个进程并发执行。但是,由于资源等因素的限制,使进程的执行通常都不可能"一气呵成",而是以"走走停停"的方式运行。
进程是以人们不可预知的速度向前推进的,这就是进程的异步性。
功能
引入OS的主要目的是,为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊的运行,并能最大程度地提高系统中各种资源的利用率。
1、处理机管理功能
- 进程控制
- 进程同步
- 进程互斥:为每一个临界资源配置一把锁,当锁打开时,进程可以对临界资源进程访问;而当锁关上时,则禁止进程访问临界资源。而实现进程同步时,最常用的机制是信号量机制。
- 进程通信
- 调度
- 作业调度
- 从后备队列中按照一定的算法选择出若干个作业,为他们分配运行所需的资源,在将这些作业调入内存后,分别为他们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列;
- 进程调度
- 从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行线程。
- 作业调度
2、存储器管理功能
- 内存分配
- 静态分配:不允许再申请新的内存空间,也不允许在内存中移动
- 动态分配:允许继续申请附加内存空间,也允许在内存中移动
- 内存保护
- 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰;
- 绝不运行用户程序访问操作系统的程序和数据,也不运行用户程序转移到非共享的其他用户程序中去执行;
- 地址映射
- 存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址;
- 内存扩充
- 内存扩充,并非是从物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;
- 请求调入功能:向OS发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行;
- 置换功能:若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时用不上的程序和数据调至硬盘上,以腾出内存空间,然后再将所需调入部分装入内存。
3、设备管理功能
- 缓冲管理
- 设备分配
- 设备处理
4、文件管理功能
- 文件存储空间的管理
- 目录管理
- 文件的读写管理和保护
- 利用文件的读写指针,对文件进行读写。一旦读写完成,便修改读写指针,为下一次读写做好准备。
5、操作系统与用户之间的接口
- 用户接口
- 联机用户接口
- 脱机用户接口
- 图形用户接口
- 程序接口
- 为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径;
- 由一组系统调用组成。
运行机制
注意:原语的概念。
不同操作系统对于内核的划分:微内核、大内核。