操作系统提供的基本服务
操作系统要负责程序的执行,也要负责编程任务等,所以它需要有以下基础服务:
- 创建程序,提供各种工具和服务,包括编辑程序和调试程序,帮助用户编程并生成源程序
- 执行程序,将用户程序和数据装入主存,为其运行做好准备工作并启动执行。当程序编译或执行出现异常时,应当有异常报告并对异常做适当处理
- 数据I/O,程序在运行过程中需要I/O设备上的数据时,可以通过I/O命令来请求操作系统的服务。操作系统不允许用户直接控制I/O设备,但是可以让用户通过简单方式实现I/O控制和读写数据
- 信息存取,文件系统让用户按文件名来建立、读写、修改、删除文件,当设计多用户访问时或共享文件时,操作系统应提供信息保护机制。
- 通信服务,在许多情况下,一个进程要与另外的进程交换信息,这种通信通常发生在两种场合,一种是在同一台计算机上执行的进程之间通信;二是在被网络连接在一起的不同计算机上执行的进程之间通信。进程通信可以借助共享内存方法实现,也可以通过消息传送实现。
- 错误检测和处理,操作系统能捕捉和处理各种硬件或软件造成的差错和异常,并适当处理这些问题,必要时及时报告给操作员或用户。
除了上面提供给用户的服务以外,操作系统还有一些提供给自身的服务,以保证自身高效工作
- 资源分配:多道作业同时运行时,每一个必须获得系统资源,而系统中的各类资源都由操作系统来管理
- 统计:统计结果可以作为进一步改进系统服务、对系统进行重组的工具,而且用户也需要知道计算机资源的使用情况
- 保护:对系统资源的所有存取都要确保受到控制,而且用户程序对各种资源的需求可能会经常冲突,所以操作系统需要有合理的调度。
操作系统提供的用户接口
提供了两种接口,一种是程序接口可以通过系统调用的方式来获得操作系统的服务;另一种是操作接口,主要是方便用户直接使用的一些接口。
程序接口与系统调用
操作系统提供的系统调用很多,从功能上大致可分为五类:
- 进程,进程和作业管理,终止或异常终止进程、装入和执行进程、创建和撤销进程、获取和设置进程属性
- 文件,建立文件、删除文件,打开、关闭文件,读写文件
- 设备管理,申请设备、释放设备、设备I/O、获得和设置设备属性
- 内存管理:申请内存和释放内存
- 信息维护,获取和设置日期及时间、获得和设置系统数据
- 通信,建立和断开通信连接、发送和接收消息、传送状态信息、连接和断开远程设备
windows通过三个组件来支持API:Kernel、User和GDI。Kernel包含了大多数操作系统函数,如内存管理、继承管理;User集中了窗口管理函数,如窗口创建、撤销、移动、对话及各种相关函数;GDI提供了画图函数、打印函数。
系统调用的实现要点
每个操作系统都提供几十到几百条系统调用,在操作系统中,实现系统调用功能的机制被称为陷入或异常处理机制,由于系统调用而因机器处理器中断的机器指令称访管指令(supervisor),陷入指令(trap)或异常中断指令(interrupt)。在操作系统中,每个系统调用都事先规定了变好,称功能号,在访管或陷入指令中必须指明对应系统调用的功能号,在大多数情况下,还附带有传递给内部处理程序的参数。