目录
5.25
一、操作系统
1)系统资源的管理者(控制整个计算机系统的硬件和软件资源,合理的组织调度计算机的工作和资源分配)
2)能够提供给用户和其他软件方便的接口和环境。(向上层提供方便易用的服务)
3)最接近硬件的一层软件
在执行一个程序之前需要将程序放到内存中,才能被CPU处理!
二、操作系统提供的四个功能(重点)
处理机管理 存储器管理 文件管理 设备管理
三、为上层提供的服务
1)直接给用户使用
1.GUI (图形用户界面)
2.命令接口
联机命令接口(WIN+R)命令行
脱机命令接口 (.bat) 批处理命令接口
区别在于说一句还是说一堆
2)给程序员使用
程序接口 --程序通过系统调用来使用程序接口
四、操作系统对硬件的扩展
将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多复杂的功能。
五、操作系统的特征(4个)
并发 共享 虚拟 异步
1)并发 --两个或者多个事件在同一时间间隔内发生。宏观是同时发生,微观是交替发生。
并行 --两个或者多个事件在同一时刻同时发生。
操作系统的并发:计算机系统中“同时”运行多个程序,宏观看是同时发生,微观看是交替发生。
单核CPU同一时刻只能执行一个程序,各个程序只能并发执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并发执行。
4核CPU-----可以同一时刻并行4个程序
2)共享--资源共享, 系统中的资源可供内存中多个并发执行的进程同时使用。
资源共享的方式:
互斥共享 : 一个时间段内只允许一个进程访问该资源。(QQ与微信同时视频,同一时间段摄像头只允许分配一个进程)
同时共享:允许一个时间段由多个进程“同时”对他进行访问 (交替对资源进行访问)(QQ与微信发文件)
3)并发与共享的关系--- 互为存在关系
4)虚拟---物理上的实体变成逻辑上的对应物。
虚拟技术分为: 空分复用技术和时分复用技术
空分复用技术:实际只有4GB的内存,在用户看来远大于4GB。(虚拟存储技术)
时分复用技术:失去并发性,就失去虚拟性的意义。(虚拟处理器)
5)异步 ---在多道程序环境下,允许多个程序并发执行。争抢资源。
每日一摘抄:
其实很多时候,我们没必要想那么多,首先我们要认清自己你我都是普通人,遇到的人也很普通,做的事也很普通,希望的生活也很普通,所以大可不必给自己那么多条条框框,遇到喜欢的人足够真诚勇敢,想表达的东西能够表达,不喜欢的事物及时止损,简单、快乐、自爱、勇敢、真诚这就足矣。
5.26
一、操作系统的发展
1、手工操作阶段:手工装/取纸带、计算、从纸带机读/写
缺点:用户独占全机、人机速度矛盾导致资源利用率低。
2、批处理阶段:脱机输入/输出技术(用外围机+磁带完成),并由监督程序负责控制作业的而输入输出。
优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升。
缺点:内存中仅能由一道程序运行,只有该程序运行结束之后才能调入下一道程序,CPU有大量的时间在空闲等待I/O完成,资源利用还是低。
3、多道批处理阶段
优点:多道程序并发执行,共享计算机资源,资源利用率大幅度提升,CPU和其他资源能够保持“忙碌”状态,系统吞吐量增大。
缺点:没有人机交互
4、分时操作系统:计算机以时间为单位轮流为各个用户/作业服务,各个用户通过终端与计算机进行交互。
优点:用户请求能被及时响应。人机交互。
缺点:不能优先处理一些紧急的任务
5、实时操作系统:根据任务的优先级,优先的响应一些任务。
分类:硬实时操作系统:必须在绝对严格的规定时间内完成处理
软实时操作系统:能接受偶尔的时间犯规。
二、运行机制
内核程序:是操作系统最核心的部分,最接近硬件的部分。
CPU的两种状态:“内核态”和“用户态”。寄存器有个二进制位,1表示“内核状态”,0表示”用户状态“ 。
CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序。
三、中断与异常
中断:让操作系统内核夺回CPU使用权的唯一途径。
1、中断类型
内中断:与当前执行的指令有关,中断信号来源于CPU内部(异常)
外中断:与当前执行的指令无关,中断信号来源于CPU外部(中断 。时钟中断、I/O中断请求)
内中断分为:陷入、故障、中止
陷入指令是应用程序主动地将CPU控制权交给操作系统的内核。---系统调用就是通过陷入指令完成的。
故障:错误条件引起,可能被程序修复,内核修复后将CPU使用权交给应用程序。
中止 :致命错误引起,无法修复,中止程序。
四、系统调用及进程与线程
1、 程序:是静态的,是存放在磁盘里可执行文件,是一系列的指令集合。
进程:是动态的,是程序的一次执行过程。(PID进程ID)
进程由PCB 、程序段、数据段组成。
进程的特征:动态性(动态的产生、变化、销毁)、并发性(内存中有多个进程实体,并发执行)、独立性、异步性、结构性.
2、进程状态
创建态、就绪态、运行态、阻塞态。
3、进程控制:实现进程的状态转换
进程转换需要做到一气呵成,期间不允许被中断。可使用”关中断指令“和”开中断指令“这两个特权指令实现原子特性。
4、进程通信:两个进程之间产生的数据交互
共享存储 :高级通信(操作系统划分)避免出错,各个进程对共享空间的访问时是互斥的。
消息传递 : 通过操作系统提供得“发送消息/接收消息”两个原语进行数据交换。
管道通信 :先进先出(半双工通信)---同一时刻只允许单向传输。
如果实现双向同时通信,需要设置两个管道。
5、线程、多线程
线程是一个基本得CPU执行单元,也是程序流的最小单位。
引入线程后,进程是除CPU之外的系统资源的分配单元。
线程是处理机调度单位,进程是系统资源分配。
6、线程实现方式
1)用户级线程
2)内核级线程
3)多线程(内核级线程)
线程的状态与转换
5.29
五、处理机调度
1、调度的三个层次:
高级调度:(作业调度)用户向系统提交一个作业~~用户让操作系统启动一个程序(来处理一个具体的任务)
低级调度:(进程调度/处理机调度)按照某种策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度,进程调度的频率很高,一般几十毫秒一次。
中级调度:(内存调度)按照某种策略决定将哪个处于挂起状态的进程重新调入内存。
内存不够时,可将某些进程的数据调出外存,暂时调到外存的进程状态是挂起状态,等内存空闲或者进程需要运行时在重新调入内存。被挂起的进程PCB会被组织成挂起队列。
2、进程的挂起态与七状态
暂时调到外存等待的进程状态为挂起状态
挂起态又细分为就绪挂起和阻塞挂起两种状态。
五状态模型-> 七状态模型
3、进程调度的时机和切换
1)需要进行进程调度与切换情况
当前运行的进程主动放弃处理机---1进程正常中止2运行过程中发生异常而终止3进程主动请求阻塞(如等待I/O)
当前运行的进程被动放弃处理机--1分给进程的时间片用完2有更紧急的事需要处理(如I/O中断)3有更高优先级的进程进入就绪队列
2)不能进行调度与切换的情况
在处理中断的过程中,中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换。
进程在操作系统内核程序临界区中 。
在原子操作过程中(原语)--原子操作不可中断,需要一气呵成。
4、进程调度的方法
非抢占方式:实现简单,系统开销小但无法及时处理紧急任务。
抢占方式:优先处理紧急的进程,也可以实现让各进程按时间片轮流执行的功能,适合分时操作系统、实时操作系统。
5、调度算法
先来先服务(FCFS) 短作业优先(SJF) 高响应比优先(HRRN)
六、进程同步