操作系统服务:
操作系统提供执行程序的环境,它向程序及其用户提供一组服务。
用户接口:包括命令行接口,批处理接口以及图形用户接口。
程序执行:将程序装入内存并运行程序。
I/O操作:操作系统必须提供完成I/O操作的手段。
文件系统操作:让程序能够读写,创建删除文件。
通信:进程之间交换信息。
错误检测:通过检测错误确保正确运算。
资源分配:把资源分配给同时运行的作业。
统计:记录用户使用资源的类型以及数量。
保护和安全:确保所有对资源的访问是受控的且系统不受外界侵犯。
操作系统的用户接口:
(交互式)用户与操作系统的接口有两种:命令行接口,图形用户接口。
操作系统的接口:
操作系统向用户提供了各种使用其服务功能的手段,即提供了操作系统接口。
操作系统向用户提供的接口:命令接口,图形接口,程序接口。
命令解释程序:
命令解释程序的主要功能是获取并执行用户指定的命令。
命令接口:
用命令接口进行作业控制的主要方式:脱机控制方式,联机控制方式。
联机命令接口提供了一组键盘命令供用户请求计算机系统服务。键盘命令可分为内部命令和外部命令。
脱机命令接口是由一组作业控制命令组成的。
GUI(图形用户接口),提供基于鼠标的窗口和菜单系统作为接口。
系统调用:
系统调用在运行程序和操作系统之间提供接口。
运行程序和操作系统之间的参数传递有3种常用的方式:
寄存器中的参数传递。
参数存在内存的一张表中,表地址作为寄存器的参数传递。
程序把参数压入栈,由操作系统弹出。
程序接口:
程序接口由一组系统调用命令组成,有时也称为系统调用接口。
用户通过在程序中使用这些系统调用命令来请求操作系统提供的服务。
系统调用可分为大致五类:进程控制,文件管理,设备管理,信息维护,通信。
系统服务:
系统服务提供程序开发和执行的便利环境。
系统服务可划分为:
文件操作,状态信息,文件修改,程序语言支持,程序调用和执行,通信。
操作系统的内核:模块结构,层次结构,微内核结构。
MS-DOS:以最小的空间提供最多的功能。
不划分模块,其接口和功能层次没有划分清楚。
早期的UNIX系统结构:
受硬件功能限制,它由两个独立的部分组成:系统程序和内核。
内核包括了在物理硬件之上,系统调用之下的一切。
内核通过系统调用提供文件系统,CPU调度,存储管理和其他操作系统功能。
分层方法:
操作系统划分为若干层,底层作为硬件,最高层作为用户接口。
每层都利用较低层的功能和服务,为较高层隐藏一定的数据结构,操作和硬件的存在。
层次结构的特点:
给模块赋予了层次顺序,使调用关系变得有序。
在上下两层不变的基础上可以换掉某层,便于移植和扩充。
但是以牺牲一定的灵活性为代价。
微内核结构:
将操作系统中的内存管理,设备管理,文件管理等高级服务功能尽可能从内核中分离出来,变成几个独立的非内核模块。
而在内核只保留少数最基本的功能,如调度,进程间通信,地址空间支持,使内核变得简洁可靠。
减低了开发难度,具有较好的扩展性和移植性,特别适合大规模开放式的分布系统。但是效率低。
小问题:系统调用的目的:
系统调用的目的是为了让应用程序能够与操作系统进行交互和利用操作系统提供的功能。应用程序通过系统调用请求操作系统执行特定的操作,例如访问文件、创建进程、网络通信等。系统调用充当了应用程序与底层操作系统之间的接口,使应用程序能够利用操作系统的服务和资源,实现更高级的功能。系统调用还提供了一种安全的方式,限制应用程序对底层系统资源的直接访问,确保系统的稳定性和安全性。总之,系统调用是应用程序与操作系统之间进行通信和利用功能的重要机制。