操作系统——操作系统结构

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。

操作系统服务

用户界面:几乎所有操作系统都有用户界面,包括命令行界面、图形用户界面、批处理界面

程序执行:系统加载程序进入内存并运行的能力

I/O操作:由于用户程序不能直接执行I/O操作,操作系统必须提供手段以便执行I/O操作

文件系统操作:系统保障程序读、写、创建和删除文件的能力

通信:通过共享存储器或消息传递实现进程在同一计算机中或由网络连接的系统间交换信息

错误检测:探测在CPU或内存硬件、I/O设备、用户程序中的错误,以确保计算正确和一致

资源分配:管理并把资源分配给多个用户或多个同时运行的作业

记账:跟踪和记录用户使用资源的类型和数量,用于记账或统计使用量

保护:确保对资源的保存安全,且所有资源访问均在控制中

系统调用

系统调用的定义

系统调用提供在运行程序和操作系统之间的服务接口,通常以C、C++或汇编语言指令形式提供,是一种为取代系统编程的汇编语言而定义的语言并允许直接进行系统调用。

通常,大多数接口由程序通过高级应用程序接口(API)访问,而不是直接使用系统调用,应用程序开发人员也通常根据API设计程序,即使简单程序也可能大量使用操作系统。

系统调用的运行

3种常用方式用于在运行程序和操作系统之间的参数传递。

1)寄存器中的参数传递

2)参数存在内存的一张表中,以表地址作为寄存器的参数传递

3)程序把参数压入栈,由操作系统弹出

系统调用的过程

1)当用户使用系统调用时,产生一条相应的指令

2)CPU在执行到该指令时发生中断,发出有关的信号给陷入(TRAP)处理机构

3)在处理系统调用之前,陷入处理机构还需保存处理机现场(用户栈指针、用户参数等)

4)处理机构在收到CPU发来的信号后,启动相关程序去完成该系统调用所要求的功能

系统调用的类型

1)进程控制(包括分配和释放内存)

2)文件管理

3)设备管理

4)信息维护

5)通信

系统程序

系统程序提供程序开发和执行的便利环境,大多数用户能看到的操作系统由系统程序定义而不是由实际的系统调用定义。系统程序可划分为:

1)文件操作

2)状态信息

3)文件修改

4)程序设计语言支持

5)程序加载与执行

6)通信

系统结构

简单结构

缺乏明确定义的结构的操作系统通常最初是简单、小规模、功能有限的系统,但是随着发展渐渐超出了原来的范围。MS-DOS就是一个这样的操作系统,它没有被仔细地划分成模块,试图利用最小的空间提供最多的功能。

由于MS-DOS系统并没有很好地区分功能的接口和层次,这使得它易受错误或恶意程序的伤害,从而导致整个系统崩溃。例如,应用程序可以直接访问BIOS例程来直接操纵设备,当然这受限于当时的硬件,intel8088没提供双模式和硬件保护,这使得DOS别无选择只能任由应用程序访问BIOS。

分层方法

操作系统划分为若干层,在低层上构建高层。底层(层0)为硬件,高层(层N)为用户层。考虑模块化,层的选择是每层只使用低层次的功能和服务。

分层的基本原则是每一层都使用其底层所提供的功能和服务,以便于系统调试和验证。

优点

1)低层和高层可分别实现,这便于扩充

2)高层错误不会影响到低层,这便于调试和满足增删改功能

3)高层对低层单向依赖,避免递归调用,有利于保证设计和实现的正确性

缺点

系统中所有进程的控制转移、通讯等任务全部交给系统的核心去管理,要花费一定代价

微内核

微内核通过划分系统程序和用户程序,把所有不必要的部件移出内核,使微内核提供最少量的进程管理、存储管理、通信功能,形成一个仅提供核心服务的内核。

特点

1)内核通常只由任务管理、虚存管理和进程间通信3个部分组成,采取服务器方式实现

2)面向多处理机和分布式系统,微内核引入了多处理机调度和管理机制,并引入了细粒度并发机制——线程,这使得多个处理机可以在同一个任务中并行执行

3)基于客户/服务器体系结构,微内核引入了任务间通信机制——消息机制,这是系统的基础,操作系统应具备的各种功能都以服务器方式实现,用户对服务器的请求是以消息传递的方式传给服务器的

优点

1)易于扩充,易于移植

2)提高系统的可靠性

3)提供多种操作环境

4)便于实现分布计算

缺点

1)消息传递方式会增加开销,使响应变慢

模块

模块即可加载的内核模块,它使用面向对象方法。其中每个核心组件都是独立的,每个组件都通过已知的接口与其他组件交互,根据需要在内核中加载。

特点

1)内核提供核心服务,其他服务在内核运行时动态加载

2)比分层方法更加灵活,任何模块都可以彼此调用

3)比微内核提供更少非核心功能,并能够加载其他模块,让模块间进行通信

Solaris可加载模块

混合系统

大多数现代操作系统并非一个纯粹的模型,而是结合多种方法来满足性能、安全性和可用性需求。例如Linux和Solaris内核都是单片化和模块化的,这既使得单一地址空间的操作系统可以提供高效性能,又使得新的功能可以动态加载到内核,而Windows主要是单片化的,还拥有支持不同子系统的微内核,苹果Mac OS X则混合了分层、Cocoa编程环境等方法。

以下是Mac OS X结构

虚拟机

虚拟机是层次化的逻辑结果,它把硬件和操作系统都看成硬件,为裸机提供了统一的接口。虚拟机的实现方式是分时和共享。采用虚拟机时,普通用户终端成为虚拟机操作员的控制台,物理计算机的资源被共享以创建虚拟机。

每个虚拟机同其他虚拟机隔离,这保证它提供对系统资源的完全保护,但不能直接共享资源。因此,虚拟机是研发操作系统的完美载体,系统开发在虚拟机上而不是在物理硬件上完成,从而不会打扰正常系统运行。

下面是Java虚拟机

系统设计目标

用户目标——操作系统应易于学习和使用,具备可靠性、安全性和快捷性

系统目标——操作系统应易于设计、实现和维护,具备灵活性、可靠性、正确性和高效性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值