Please enable JavaScript.
Coggle requires JavaScript to display documents.
第一周 (操作系统的分类 (批处理操作系统 ((SPOOLING技术(假脱机技术):利用磁盘做缓冲,将输入、计算、输出分别组成独立地任务流,使I/O…
第一周
操作系统的分类
批处理操作系统
工作方式
:系统操作员收集每个用户的
作业
组成一批作业,输入到计算机系统中,系统自动、依次执行每个作业,然后系统操作员将输出结果返回给用户。
用户不能干预自己作业的执行。
问题
:慢速的输出输出,CPU处于等待状态,CPU利用率不高
解决方法
:采用卫星机(即多台机器),完成输入输出,然后将结果暂存到磁盘上
SPOOLING技术
(假脱机技术):利用
磁盘做缓冲
,将输入、计算、输出分别组成独立地
任务流
,使I/O和计算真正并行。
提高了资源利用率和吞吐量
分时操作系统
时间片
:将CPU的时间划分为若干个片段,即时间片。以时间片为单位,轮流为每个用户服务
追求目标:响应时间
实时操作系统
能
及时响应
外部事件的请求,并在规定时间内完成处理
硬实时操作系统和软实时操作系统
个人计算机操作系统
在某一时间内为单用户服务
追求目标:界面友好、使用方便、丰富的应用软件
网络操作系统
在计算机网络基础上,按网络体系结构协议开发的软件
功能
:网络管理,通信、安全、资源共享和各种网络应用
追求目标:相互通信、资源共享
分布式操作系统
以计算机网络或以多处理机为基础,基本特征是
单个任务的处理分布在不同的计算机上
处理能力强、速度快、可靠性增强、具有透明性
需要解决的问题:如何自动实现全系统范围内的任务分配、自动调度、均衡各处理机的工作负载
嵌入式操作系统
资源有限、功能明确、通常对处理时间有严格要求
操作系统的主要特征
并发(concurrency)
定义
:
多个程序
在
同一时间间隔
内
同时运行
宏观上
:多个程序同时在CPU上执行
微观上
:多个程序在
同一时间间隔内
在CPU上
轮转
执行
并发需要解决的问题
:进程切换、资源保护、相互依赖的多个进程之间的同步问题
与并行的区别
:
并行
是多个程序同时
在多个硬件部件上
执行
共享
定义
:
操作系统
与
多个用户程序
共同使用有限的计算机系统中的资源
共享需要解决的问题
操作系统对系统资源进行
分配
和
使用
资源如何在同一时间段内交替被多个进程使用
资源分配如何最优化,如何保护资源
分类
互斥共享:在同一时刻资源只能被一个进程共享。如打印机
同时共享:在同一时刻可以被多个进程共享。如可重入代码、磁盘文件
虚拟
定义
:一个物理实体映射为若干个对应的逻辑实体
分时:全部逻辑实体(资源)在不同时间段被不同进程所拥有。也叫分时复用
分空间:不同进程在同一时间段使用全部逻辑实体(资源)的一部分。
虚拟的目的:
提高资源利用率
虚拟的一些实例
CPU:每个进程的“虚处理机”
存储器:每个进程拥有独立的虚拟地址空间(代码+数据+堆栈)
显示设备:多窗口或虚拟终端
随机
定义:操作系统必须随时对
以不可预测的次序
发生的事件进行响应和处理
特点
进程的运行速度不可知:多个进程并发执行,无法预知每个进程运行推进的快慢
难以复现系统在某个时刻的状态,所以很难对出现的BUG进行调试
典型操作系统的架构
Windows
Unix
Linux
Andrroid
操作系统的定义与作用
定义
是计算机系统的一个
系统软件
,是一些程序模块的集合
作用
有效的管理资源(包括硬件资源和软件资源)
通过命令接口和编程接口为用户提供各种功能服务
对硬件机器进行扩充
基本功能
进程/线程管理
文件管理
存储管理
设备管理
用户接口
操作系统做了什么
针对一个简单的hello world程序
执行程序前的准备工作
1.首先用户告诉操作系统执行helloworld程序
双击打开程序
终端输入命令行
2.操作系统接到用户请求,在磁盘中找到这个可执行程序,根据程序首部信息,来
确定代码和数据在可执行程序中的位置
,然后
计算出代码和数据在磁盘块中相应的地址
Windows中可执行程序格式为PE
Linux中可执行程序格式为ELF
进程管理
4.操作系统为该进程设置上下文环境,调度程序选中该进程,在下一个指令周期执行该进程
3.
创建一个进程
,将可执行程序
映射到该进程结构
中,表示由该进程来执行helloworld程序
存储管理
6.
分配
一块
物理内存
,将
磁盘
中该程序的
代码和数据
加载到
内存
中,准备执行程序的指令
5.在执行helloworld的第一条指令的时候,由于
程序的代码和数据还没有读入到内存
中,因此会出现
缺页异常
文件系统
8.控制显示设备的进程告诉设备的窗口系统要显示字符串,窗口系统将字符串转换为像素,将像素写入设备的存储映射区域
9.视频硬件将像素转换为显示器可接收的一组控制与数据信号
10.显示器解释信号,激发液晶屏,然后我们才在屏幕上看到了“hello world”
7.执行
puts函数(系统调用)
,由操作系统将字符串送给显示设备所在的进程中
如何告知
可执行程序格式
都是由内核态和用户态组成