1.1 OS目标: 方便性、有效性、可扩展性和开放性。
其中,有效性:1-提高资源利用率(给各部门发任务)
2-提高系统吞吐量(优化工作流程)
OS作用: 1-用户与硬件的接口
2-系统资源(I/O、处理机、存储器、文件-数据、程序)管理者
3-对计算机资源的抽象:
个人理解即,在裸机(铁疙瘩)上,加很多的软件:如p3的图,
即软件的那个方框里实现一些很酷的对该层的具体操作,并且把原始的操作变成更简 单、有逻辑的数据结构、操作命令,提供给上层领导。(有点像c和01之间的关系)
总之,一层一层向上叠加,最终用户手里的微机,像windows一样,用起来就贼 方便。点点鼠标就能改一些很复杂的东西。对程序员即我,以后gpu等的优化肯定也 有好处,加油好好学!
1.2. 系统演化:初始->单道批处理->多道批处理->分时系统->实时系统
多道批处理:1-资源利用率高
2-系统吞吐量大
3-平均周转时间长
4-无交互能力
操作系统:一组能有效地阻止和管理计算机硬件和软件资源,合理对各类作业进行调度,以及方便 用户使用的程序的集合。
分时:时间片内做完,做不完也不准做了
多路性、独立性、及时性、交互性
1.3 操作系统基本特性:1-并行与并发 并行:同一时刻/并发:同一时间间隔
2-引入进程 进程:系统中能独立运行并作为资源分配的基本单位
3-共享:资源复用 互斥共享/同时访问,
互斥共享-临界资源:一段时间只允许一个进程访问
多用户OS基本特征:并发<->共享
4-虚拟:空分复用/时分复用
虚拟:通过某种技术把一个物理实体变成若干个逻辑上的对应物的功能
时分复用:用来实现-虚拟处理机、虚拟设备
虚拟处理机技术:为每道程序建立至少一个进程,然 后通过技术来达到一个物理处理机变为给各个用户跑 自己程序的多个虚拟(逻辑)处理机(时分复用)。
虚拟设备技术:I/O设备虚拟为多台逻辑上的I/O设 备,第五章讲
空分复用:用存储器空闲时间运行其他程序+虚拟存储技术
虚拟存储技术:内存的分时复用-每个程序的各部分分时 进入内存运行
5-异步:进程tt需要很多资源,但是有些资源会在tt需要使用时被其他人占 用。这时tt就需要等待。进程们以人不可预知的速度推进,此即进程 的异步性。
1.4 操作系统主要功能:
进程管理: 1-进程控制:为作业创建进程、撤销已结束进程、控制进程在运行过程的状态 转换
2-进程同步:为多个进程(含线程)的运行协调-互斥/同步
互斥:对临界资源采用互斥方式访问
同步:相互合作完成共同任务的进程们,同步机构对其协调。
例如:每个人(临界资源)都上把锁,锁开即访问
3-进程通信:相互合作进程之间的信息交换(例如输入、计算、打印三进程)
同一计算机中,用直接通信的方式,发送方将消息挂到目标进程 的消息队列。
4-调度 : 作业调度/进程调度
作业调度:从队列中选出若干作业,用算法为它们分配资源, 将它们调入内存后,分别建立进程,插入就绪队列。
进程调度:从进程的就绪队列中选一个进程,将处理机分配给 它,为他设置运行现场。
存储器管理 : 1-内存分配:尽量全用完、按需分配、不够再加
2-内存保护:程序不越界
3-地址映射
4-内存扩充:请求调入、置换
设备管理: 1-缓冲管理:内存和cpu之间的缓冲
2-设备分配 :根据需求分配、回收设备
3-设备处理:设备驱动程序
文件管理: 1-文件存储空间的管理:分配、管理、回收文件存储空间
2-目录管理:文件共享、目录查询、简化用户创建目录的步骤
3-文件的读/写管理、保护
操作系统与用户的接口:
1-用户接口:可用于用户直接或间接的控制自己的作业
1'联机用户:键盘操作+命令解释
2'脱机用户:用作业控制语言JCL把要对作业干的事情写在作业 说明书上,一起交给系统。系统调度到改作业运行时,逐条解 释执行。
3'图形用户: 图形化操作界面。icon-图标。快捷操作程序、文件
2-程序接口:用户程序取得操作系统服务的唯一途径
例如:system.xxx
1.5 OS结构设计:1-传统操作系统结构:无结构->模块化->分层式
模块化:每个模块有各自的功能,通过接口实现交互。每个模 块还能细分为更小的模块。要注意模块独立性问题, 模块不能太大也不能太小。
以内聚性(各部分紧密程度-越高越好)、
耦合度 (模块间相互联系影响程度-越低越好)。
独立性越好,交互就越少,结构就越清晰。
分层式:改变模块化中的无序性。基本原则:每一步设计都可 靠(你只能用你下面的服务和功能),再目标系统和 裸机系统A0中,自底向上铺设中间层。高层仅依赖 于邻近低层。分层式,正确、可扩充、易维护)
2-客户/服务器模式: Client/Server Model,C/S模式
组成:客户机-服务器-网络系统
客户/服务器间的交互:客发-器收-器发-客收(想起直播 软件)
优点:数据的分布处理和存储,便于集中管理、灵活可扩充 、易于改编
3-面向对象程序设计:基于抽象、隐蔽原则。
对象:现实世界中具有相同属性、服从相同规则的一系列事 物的抽象。具体事物为实例。
对象类:比如abcde五只二次元女孩,抽象为五个对象,我 们发现她们都是猫娘,便可以定义为一个猫娘类。 处理相似的猫娘时便可以用类中的方法。 (数据结构的struct)
继承:面向对象的技术中,可以根据已有类来定义一个新 类, 新类被称为子类,原来的类被称为父类。继承是 父类和子类间共享变量和方法的机制。子承夫业并且 可以有新业务。一个子类可认很多父亲,例如舍友间 关系^^
优点:重用降低成本、提高质量、已修改、易扩展、正 确可靠
4-微内核OS结构: 什么是微内核?
1-足够小的内核:基本功能
2-基于客户/服务器模式,把大部分功能放在微内核外的 服务器中
3-机制与策略分离原理:
机制(基层、微内核中):实现某一功能的具体执行机构
策略(高层):在机制的基础上借某些参数和算法实现功 能优化
基本功能:
1-进程管理
2-低级存储器管理
3-中断和陷入处理
优点:可扩展、可靠、可移植、支持分布式、融入面向对象
存在的问题:效率低下
具体见书p30,建议以后的你好好看看,感觉这部分蛮有用的
本章类似大纲,应反复观看!