学习视频链接:阿里大神带你一周刷完大学四年没学会的操作系统
概论
基本概念
- 定义:操作系统是指控制整个计算机软件和硬件资源,合理地组织,调度计算机工作和资源的分配,进而为用户提供其他方便的接口和环境的程序集合,操作系统是计算机系统中的最基本的系统软件。(管理硬件和软件的系统软件)
- 层次结构:自下而上可以分为4部分,硬件(裸机如键盘/鼠标/内存/cpu),操作系统,应用程序,用户。
-
目标和功能
功能
管理功能(1):
- 处理机管理(进程控制,进程同步,进程通信,调度)
- 存储器管理(内存分配,内存保护,地址映射,内存扩充)
- 设备管理(缓冲管理,设备分配,设备处理),文件管理(文件存储空间的管理,目录管理,读写管理和保护)。
接口功能(2):
- 用户与计算机系统之间的接口
- 命令接口
- 程序接口(系统调用)
- GUI
功能(3):实现对于计算机硬件资源的抽象,开放了简单的访问方式,隐藏了实现细节
目标:
有效性(提高系统利用率,提高吞吐量),方便性,可扩充性,开放性
-
特点
特点:并发,共享,虚拟,异步。
- 并发:表示两个或者多个事件在同一时间间隔里面发生。引入进程的目标是使程序能并发执行。是通过分时得以实现(辨析并行:同一时刻能完成两种或者两种以上的程序和操作)
- 共享:就是资源共享,指的是系统中的资源可供内存中多个并发执行的进程同时使用下面是两种资源共享的方式:
- 互斥共享方式:一个时段内只允许一个进程访问该资源(比如打印机)
- 允许一个时间段内多个进程同时访问资源(比如QQ微信同时发消息)
- 虚拟:把物理上的实体改变为若干个逻辑上的对应物。(背景知识:一个程序需要放入内存并给它分配CPU才能执行)虚拟技术有如下两种:
- 空分复用技术SDM-Space Division Multiplexing(虚拟存储器)
- 时分复用技术TDM-Time Division Multiplexing(虚拟处理器):分成时间片
- 异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底而是走走停停,以不可预知的速度向前推进,这就是程序的异步性。
-
发展与分类
批处理OS-分时OS-实时OS-微机(windows,MacOS,安卓,苹果都是微机),网络(资源共享,远程通信)和分布式OS(分布性,并行性,多用在大型处理器上)
-
运行机制
时钟管理:
- 计时:提供系统时间
- 时钟中断:比如进程切换
中断:
- 提高多道程序环境下的CPU的利用率
- 外中断:中断来源是-外部设备(比如说io)
- 内中断:也叫做异常/陷入/例外,终端的信号来源-当前指令,有三种情况
- 陷入陷阱(Trap):由应用程序主动引发的
- 故障(fault):由错误条件引发的,比如当文件很大只有部分加载,后来有需要取磁盘上读需要的文件的时候,内存缺页故障
- 终止(abort):由致命错误引发的
- 中断处理过程:大体分为三部分,产生中断,执行中断处理程序,恢复被中断的程序
- 1关中断(关:CPU不响应高级中断请求)—>2保存断点(保存程序计数器PC)—>3引出中断服务程序—>4保存现场和屏蔽字—>5开中断→6执行中断服务程序(在这个时候CPU可以并发的去响应其他中断)→7关中断→8恢复现场和屏蔽字-9开中断-中断返回
原语!!:
- 由若干条指令组成,是一个程序段
- 用来执行特定的功能,运行在内核空间
- 执行过程中不会被中断,具有“原子性“
系统数据结构
- 进程管理:作业控制快,进程控制块
- 存储器管理:存储的分配和回收
- 设备管理:缓冲区,设备控制块
系统调用
(在内核态,所以一定会从用户空间陷入中断转移到内核空间,转换需要时间)
- 是一整套接口
- 给应用程序用的,是应用程序访问内核服务的方式
- 由操作系统实现的