第二章 操作系统结构
2.1 操作系统的服务 P38
- 操作系统负责提供一个环境以执行程序,向程序和使用程序的用户提供一定的服务。
- 服务包含许多有用的函数。
操作系统有一组服务,用于提供用户功能:
- 程序执行 – 系统能将程序装入内存并运行,结束包括正常或不正常结束。
- I/O 操作 – 用户通常不能直接控制I/O 设备,操作系统必须提供进行I/O 操作的方法。
- 文件系统操作 – 程序需要读、写、创建、删除文件。
通信 – 进程间交换信息一种发生在同一台计算机上运行的两个进程之间,另一种发生在由计算机网络连接起来的不同计算机上的进程之间。通信通过共享内存或消息传递来实现。 - 错误检测 –错误可能发生在CPU和内存中、 I/O 设备中、用户程序中,对于每种错误,操作系统应采取适当行动,以确保正确和一致的计算
- 资源分配 – 当多个用户登录到系统上或多个作业同时执行时,系统必须为每个进程分配资源
- 统计– 跟踪记录哪些用户使用了多少和什么类型的计算机资源。这种记录用于记帐或建立使用统计数据
- 保护 – 确保所有对系统资源的访问都是受控制的,特别是在多用户计算机系统中
2.2 用户与操作系统的界面 P40
- 用户与操作系统的界面
- 命令行界面
- 图形用户界面
命令解释程序
- 在 MS-DOS中称为==命令行解释程序==
- UNIX中称为外壳(shell) (cf. kernel)
- 作用:获取并执行用户指定的下一条命令。
- 文件的创建、删除、列出、打印、复制、执行。
执行命令的方法:
- 命令解释程序本身包含代码
- 命令的数量决定了命令解释程序的大小 - 由系统程序实现命令
- rm file.txt
- 搜索名为rm的文件,将文件装入内存,并用参数file.txt来执行。
图形用户界面(GUI)
- GUI提供基于鼠标的窗口和菜单系统作为接口。
2.3 系统调用(给程序员用的) P43
-
系统调用 提供了进程与操作系统之间的接口
- 调用通常以汇编语言指令的形式提供。
- 有些语言 (e.g. C, C++)已经取代了汇编语言而直接用于系统编程,允许直接调用系统调用,这时系统调用通常类似预定义的函数或子程序调用。(Win32 application programming interface (API) for Microsoft Windows。) -
例:从一个文件读取数据并复制到另一个文件
-
一般根据应用程序接口(API)设计程序
-
API是一系列适用于程序员的函数,含参数及返回值
- win32 API
- POSIX API
- Java API -
例:处理一个调用open( )系统调用的用户应用程序