1.4操作系统主要功能
1.4.1处理机管理功能
1.进程控制
创建进程。
控制进程在运行过程中的状态转换。
撤消已结束的进程。
2.进程同步
进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:
(1) 进程互斥方式。诸进程(线程)在对临界资源进行访问时,采用互斥方式;(加锁)
(2) 进程同步方式。这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。(信号量)
3.进程通信
4.调度
在传统的操作系统中,包括作业调度和进程调度两步。
1.4.2存储器管理功能
1.内存分配
内存分配的主要任务:
①为每道程序分配内存空间;
②提高存储器的利用率,以减少不可用的内存空间;
③允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
2.内存保护
内存保护的主要任务:
①确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰;
②绝不允许用户程序访问操作系统的程序和数据;
3.地址映射
程序中的 “逻辑地址”或“相对地址需要转换为内存中的 “物理地址”。
4.内存扩充
借助于虚拟存储技术从逻辑上扩充内存容量。系统必须具有内存扩充机制:
(1) 请求调入功能。
(2) 置换功能。
1.4.3设备管理功能
1.缓冲管理:I/O设备和CPU之间引入缓冲。
单缓冲、双缓冲、公用缓冲池
2.设备分配
3.设备处理
即设备驱动程序。
1.4.4文件管理功能
1.文件存储空间的管理
2.目录管理
①为每个文件建立其目录项。
②实现文件共享。
③提供快速的目录查询手段。
3.文件的读/写管理和保护
(1) 文件的读/写管理。
(2) 文件保护:防止系统中的文件被非法窃取和破坏。
①防止未经核准的用户存取文件;
②防止冒名顶替存取文件;
③防止以不正确的方式使用文件。
1.4.5操作系统与用户之间的接口
(1) 用户接口。它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务;
(2) 程序接口。它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的惟一途径。
1.5 OS结构设计
1.5.1 传统的操作系统结构
1.无结构操作系统
仅是为数众多的一组过程的集合。
每个过程可以任意地相互调用其它过程。
操作系统内部既复杂又混乱。
又称为整体系统结构。
2.模块化结构OS
基于“分解”和“模块化”原则。
模块―接口法:
OS按其功能划分为若干个具有一定独立功能和大小的模块。如进程管理模块、存储器管理模块、I/O管理模块等。
并规定好各模块间的接口,使各模块之间能通过该接口实现交互。
衡量模块的独立性有以下两个标准:
(1) 内聚性,指模块内部各部分间联系的紧密程度。内聚性越高,模块的独立性越强。
(2) 耦合度,指模块间相互联系和相互影响的程度。显然,耦合度越低,模块的独立性越好。
3.分层式结构OS
操作系统可分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。
自底向上分层设计的基本原则是:
每一步设计都是建立在可靠的基础上。
1.5.2 客户/服务器模式 C/S (Client/Server)
1.客户/服务器模式的组成
由客户机、服务器和网络系统组成。
2.客户/服务器之间的交互
1.5.3 面向对象的程序设计
1.面向对象技术的基本概念
基本原则:“抽象”和“隐蔽”。
目标:控制大型软件的复杂度
OS中的各种对象:进程对象、线程对象、存储器对象和文件对象等。
2.面向对象技术的优点
(1) 通过“重用”提高产品质量和生产率。
(2) 使系统具有更好的易修改性和易扩展性。
(3) 更易于保证系统的“正确性”和“可靠性”。
1.5.4微内核OS结构
1.微内核结构的操作系统包含以下四个方面:
1) 足够小的内核
内核能实现OS最基本的核心功能。为构建通用OS提供一个重要基础。
通常用于:
①实现与硬件紧密相关的处理;
②实现一些较基本的功能;
③负责客户和服务器之间的通信。
2) 基于C/S模式
最基本的部分放入内核,绝大部分功能都放在微内核外面的一组服务器(进程)中实现。
3) 应用“机制与策略分离”原理
机制:指实现某一功能的具体执行机构。
策略:在机制的基础上,借助某些参数和算法来实现该功能的优化。
微内核操作系统中,机制放在OS的微内核中。
4) 采用面向对象技术
5)采用消息传递机制
2.微内核的基本功能
1) 进程(线程)管理
①进程调度 ②进程状态切换
③进程同步 ④进程通信
2) 低级存储器管理
3) 中断和陷入处理