1.OS概念和功能
1.1概念
常见操作系统:
- Windows,安卓,iOS,MacOS,Linux。
计算机系统的结构层次:
从操作系统的位置可以看出:(下面三条就是操作系统的概念)
- 操作系统是最接近硬件的软件,操作系统不是硬件!
- 负责协调软硬件资源问题
- 为上层用户和应用程序提供服务
1.2功能
1.作为计算机系统资源的管理者
补充:进程是一个程序的执行过程,执行前要提前把程序放到内存中,才会被CPU处理。
根据QQ例子理解功能:
2.作为用户与计算机硬件系统之间的接口
- 命令接口:允许用户直接使用
- 联机命令接口(交互式):用户说一句,系统做一句,例如cmd
- 脱机命令接口(批处理):用户说一堆,系统做一堆
- 程序接口:允许用户通过程序间接访问,由一组系统调用组成
- 程序接口=系统调用=系统调用命令=广义指令
- GUI:现代操作系统中最流行的图形用户接口,例如将不用文件,拖入垃圾桶。
3.作为最接近硬件的层次
实现对硬件机器的扩展,没有任何软件支持的计算机称为裸机,在裸机上安装操作系统可以提供资源管理功能和方便用户服务功能,覆盖了软件的机器叫做扩充机器,又叫虚拟机。
裸机----------锤子,木头等工具
操作系统------木匠
用户-------直接使用成品
2.OS的特征
2.1并发
概念:并发是指两个或多个事件在同一时间间隔内发生 。这些事件在宏观上是同时发生的,在微观上是交替发生的。
操作系统的并发性是指计算机系统中同时存在多个运行着的程序。
一个单核CPU同一时刻只能执行一个程序,因此操作系统负责协调多个程序交替进行,微观上交替,宏观上看着还是同时。在操作系统中,引入进程的目的是使程序能并发执行。
操作系统和程序并发是一起诞生的。
并发性:是指两个或多个事件在同一时间间隔内发生。
- 8:00-9:00帮妈妈打扫卫生
- 9:00-10:00和爸爸下棋
并行性:是指两个或多个事件在同一时刻发生。
- 8:00-10:00既打扫卫生又下棋
2.2共享
是指系统中的资源可供内存中多个井发执行的进程共同使用。
并发,共享关系:
2.3虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的事物。用于实现虚拟的技术,称为虚拟技术。
没有并发性,虚拟性就没有存在必要。
拓展:一个程序需要放入内存中,给他分配CPU才能执行。
虚拟技术分类:
- 时分复用技术,如处理器的分时共享。
- 空分复用技术,如虚拟存储器。
eg:
2.4异步
在多道程序环境下,允许多个程序井发执行,但由于资源有限,进程的执行不是一贯到底, 而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
没有并发性,异步就没有存在必要。
3.OS的发展
手工操作阶段
缺点:用户独占全机和人机速度矛盾导致资源利用率低
单道批处理系统
引入脱机输入、输出技术(用磁带完成),监督程序负责控制作业的输入、输出。
优点:缓解了人机速度矛盾,资源利用率有所提升
缺点:串行,内存中仅有一道程序执行
多道批处理系统
优点:并发,共享得以实现,资源利用率大幅度提升,系统吞吐量增大
缺点:用户响应时间长,没有人机交互功能
分时操作系统
计算机以时间片为单位轮流为各个用户服务,各个用户可以通过中断与计算机进行交互。
优点:解决了人机交互问题
缺点:不能优先处理一些紧急任务,操作系统对各个用户都是完全公平的
实时操作系统
为了能在某个时间限制内完成某些紧急任务而不需时间片排队
4.OS的运行机制和体系结构
4.1两种指令、两种CPU状态、两种程序
指令:处理器(CPU)能识别、执行的最基本命令。
特权指令:是指有特殊权限的指令,不允许用户程序使用—>由于这类指令的权限最大,如果使用不当,将导致整个系统崩溃。比如: 清内存、置时钟、分配系统资源、修改用户的访问权限等。特权指令必须在核心态执行。
非特权指令:指普通的运算指令。
4.2内核
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。
实现操作系统内核功能的程序就是内核程序。
5.中断
中断的本质:发生中断就意味着需要操作系统介入,并展开管理工作。
- 中断发生时,CPU立即进入核心态
- 用户态---->核心态:中断是唯一途径
- 核心态---->用户态:通过特权指令,将程序状态字PSW设置为0
- 中断发生后,当前运行的进程暂停,由操作系统内核对中断进行处理
- 有了中断,才能实现并发
中断的分类:
6.系统调用
系统调用:又叫程序接口,是操作系统提供给应用程序(程序员)使用的接口,可以理解为可供应用程序调用的特殊函数。
发出系统调用请求来获得操作系统的服务,系统中各种共享资源都由操作系统统一掌管,因此用户需要通过系统调用的方式,让操作系统代为完成有关资源的操作,这样可以保证系统的稳定和安全,防止用户非法操作,争夺资源。
系统调用的相关处理需要在核心态下进行。
系统调用与库函数的区别:
系统调用的过程:
传入系统调用参数-------执行陷入指令(用户态)--------执行系统调用相应程序(核心态)---------返回用户程序
- 执行完陷入指令后发起一个内终端,从而CPU进入核心态
- 发出系统调用请求实在用户态,而对系统调用的相应处理是在核心态下进行的
- 陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令
学习来源:b站王道考研