本科生操作系统原理学习记录
学习记录全家桶
第二章 操作系统结构
2.1 操作系统服务和接口
2.1.1 操作系统服务
以服务形式向程序和用户提供环境执行程序
基本服务:
用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测
增值服务:
资源分配、统计、保护和安全
操作系统的服务形式:
- 系统调用
- 用户接口
- 系统程序
2.1.2 系统调用
操作系统服务的编程接口——面向程序
高级语言编写 (C or C++)
程序通过应用程序接口(API)
访问
三种常用 APIs
:
-
Windows 的
Win32 API
-
POSIX
系统 (包括几乎所有版本的UNIX, Linux, 和Mac OS X)的POSIX API
-
Java 虚拟机
(JVM
) 的JavaAPI
2.1.3 用户界面
图形化接口 (GUI)
第一个图形界面——Xerox Alto
触摸屏的 GUI
未来的人机接口:语音操控、人体感知操控
2.1.4 系统程序
用于管理、维护操作系统
为用户使用操作系统服务
功能:
- 文件管理,比如展示一个文件夹中的文件信息,修改属性和删除等操作
- 状态信息,查看后台进程,查看计算机使用的内存情况等等
- 文件处理,编辑文件
- 程序语言支持,在计算机上写程序,比如在命令行接口中写C语言代码
- 程序装入和执行,在计算机上执行代码
- 通信,远程连接桌面
2.2 操作系统结构
2.2.1 简单结构
功能都混在一个层面,比较复杂和混乱,没有结构
无结构:规模小、简单、功能有限
问题:混乱、不易维护和更新、不适合大规模系统开发
例子:
MS-DOS,不划分模块
早期的 Unix 系统
2.2.2 层次结构
- 操作系统分为若干层
- 在低层上构建高层
- 底层 (0层) 为硬件
- 最高层 (N层) 为用户层
- 每层只能使用低层次的功能和服务
优点:简化了系统设计和实现,便于调试和升级维护
缺点:层定义困难、效率差
比如:iOS
操作系统,荷兰Electrologica X8
(32 K 内存)简单批处理系统
但是 对于 iOS
系统来说,可以跨层调用,也可以低层调用高层
2.2.3 微内核
内核微型化:
核内移出尽可能多功能道用户空间,服务器可以采用这种结构方式
好处:
-
便于扩充微内核
-
便于移植操作系统到新架构系统上
-
更稳定
-
更安全
缺点:
-
用户空间和内核空间通信的系统开销增加
-
解决方法:提出消息传递机制
当内核拿到CPU的控制权
举例:第一个使用微内核的操作系统 CMU
的Mach
QNX
-基于微内核的实时操作系统
Windows NT,2000,2003以及后续版本等
2.2.4 模块结构
现在的大部分操作系统采用模块结构: Solaris
模块 和 Linux
- 使用面向对象方法
- 每个核心部件分开
- 每个与其他模块的会话被称为接口
- 每个模块在需要时被加载到内核
优点:操作使用上更加灵活
2.2.5 混合结构
混合结构并不是一种结构,就是混合搭配的意思
比如复杂的 Mac OS X
2.3 虚拟机
2.3.1 虚拟机定义
虚拟机:
一种通过软件模拟实现,具有完整硬件系统功能,并运行在一个完全隔离环境中的完整计算机系统
- 物理计算机资源共享以创建虚拟机
- 每个虚拟机同其他虚拟机隔离
- 由于需要对物理机器进行精确复制,虚拟机实现困难
- 上个世纪60年代,虚拟机用于大型机IBM
VM
操作系统
常用的虚拟机软件:JWM VMare Virtual box
一个物理计算机上存在多个虚拟机,不同虚拟机相互隔离
一个物理计算机上的各个虚拟机的资源可以动态调配
2.3.2 Java虚拟机
Java语言的解释器
- 可运行Java代码的假想计算机
- 只要根据
JVM
规格将解释器移植到特定的操作系统上,就能运行经过编译的任何Java代码 - 特点:平台无关性
功能:使得代码能够跨平台运行
2.3.3 工作站虚拟机
工作站虚拟机:操作系统上的虚拟机
- 宿主操作系统(Host OS):安装在硬件上的OS
- 客户操作系统(Guest OS)安装在操作系统上的操作系统
- 工作站虚拟机安装在宿主操作系统上,在工作站虚拟机中可以安装客户操作系统
好处:
- 同时在一个计算机上使用多个操作系统
- 一个宿主操作系统,若干个客户操作系统
2.3.4 服务器虚拟机
多用户、多操作系统
安装在裸机上的虚拟机
裸机:只安装了硬件,软件部分都没安装:包括操作系统、各种驱动和应用软件
服务器虚拟化:
将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器
常用模式:
- 一虚多:一台服务器虚拟成多台服务器虚拟机
- 多虚一:多个独立物理服务器虚拟为一个服务器虚拟机
优点:
- 安全性好
- 资源共享
- 可扩展性好
- 便于隔离
- 相价比高
2.3.5 连接方式
软件形式:在计算机中安装一个远程登录的软件,如远程桌面
硬件模式:用户不需要PC,只要有一个手机大小的终端设备,如虚拟机终端
单元作业
-
从方便性和效率两个方面比较一下GUI和
CLI
的优点和缺点。GUI(图形用户接口)
优点:以图形的形式展现出来,操作直观,方便用户操作使用
缺点:需要花费其他资源来满足用户的 “需求”,因而对计算机系统运行来说,效率差
CLI(命令行接口)
优点:节约计算机系统的资源,计算机系统的效率高
缺点:普通用户使用起来操作麻烦,操作不直观
-
什么是系统程序?什么是应用程序?请说明你区分的标准。另外,请列举10个WINDOWS的系统程序。
系统程序:
为应用程序直接提供半成品(为应用程序提供执行的虚拟环境)和协调多个应用程序并行运行的程序,运行在计算机底层
应用程序:
应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序
区分的标准:提供的服务目标
举例 Windows 系统程序:
mstask.exe Windows计划任务
regsvc.exe 远程注册表服务
msgsrv32.exe Windows信使服务
mprexe.exe Windows路由程序
mmtask.tsk 多媒体支持程序
lsass.exe 本地安全权限服务
kernel32.dll Windows壳程序
services.exe Windows Service Controller
spool32.exe Windows打印任务控制程序
taskmon.exe Windows Task Optimizer
-
操作系统的结构有哪几种?每种结构请给出1-2例子。
简单结构:MS-DOS、早期的Unix系统
层次结构:
iOS
操作系统,荷兰Electrologica X8
(32 K 内存)微内核:Windows2000 、
CMU
的Mach模块结构:Solaris
混合结构:Mac OS X
-
什么是虚拟机?引入虚拟机有什么好处?
定义:
一种通过软件模拟实现,具有完整硬件系统功能,并运行在一个完全隔离环境中的完整计算机系统
好处:
1、安装虚拟机可以演示环境,可以安装各种演示环境,便于做各种例子。
2、虚拟机能保证主机的快速运行,减少不必要的垃圾安装程序,偶尔使用的程序,或者测试用的程序在虚拟机上运行。
3、能帮助体验不同版本的操作系统,如Linux、Mac等。
4、能降低占用空间,降低购买软硬件设备的成本,节省能源和更低的维护成本。
5、虚拟机能提升系统的安全性。
-
采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程序和系统服务相互作用?微内核方法的缺点是什么?
优点:
便于扩充微内核
便于移植操作系统到新架构系统上
更稳定 (更少的代码运行在核心态)
更安全
缺点:
用户空间和内核空间通信的系统开销增加
相互作用:
需要进行上下文切换进行系统调用来完成任务