操作系统概念笔记——第二章:操作系统结构

第二章:操作系统结构

2.1 操作系统服务

一组操作系统服务提供对用户很有用的函数

1.用户界面

所用操作系统都有用户界面,用户界面可以有多种形式,一种是命令行形式,另一种是图形界面(GUI)形式

2.程序执行

系统必须能将程序装入内存并运行程序

3.I/O操作
4.文件系统操作
5.通信
6.错误检测
7.资源分配
8.统计
9.保护和安全

2.2 操作系统的用户界面

2.2.1 命令解释程序

有的操作系统在其内核部分包含命令解释程序

在具有多个命令解释程序选择的系统中,解释程序被称为外壳(Shell)

命令解释程序的主要作用是获取并执行用户指定的下一条命令

扫描二维码关注公众号,回复: 13124667 查看本文章

2.2.2 图形用户界面

GUI提供了桌面的概念,用户移动鼠标把指针定位到屏幕(桌面)的图像(Icon)

2.3 系统调用

1.系统调用(System Call)提供了操作系统提供的有效服务界面(编程接口)

2.系统调用通常用C或C++编写,但底层的功能可能由汇编语言实现

以文件拷贝为例
在这里插入图片描述
3.在一般情况下,程序开发人员根据应用程序接口(API)设计程序
API是一系列适用于应用程序的函数,包括传递给每个函数的参数及其返回的值

标准API的例子:读文件方法
在这里插入图片描述
在后台,组成API的函数通常为应用程序员调用实际的系统调用。

4.常用的API有:适用于Windows系统的Win32API,适用于POSIX系统的POSIX API,运行于Java虚拟机的Java API

5.通常,每个系统调用会有一个与其相关的数字。系统调用接口根据这些数字维护一个列表索引。系统调用接口来调用所需的操作系统内核中的系统调用,并返回系统调用状态及其它返回值

6.程序员只需要知道利用API执行系统调用后,系统做了什么。因此对于程序员来说,操作系统接口的很多细节被API隐藏了

7.向操作系统传递参数的三种类型:

(1)通过寄存器传递参数,但有时参数数量会比寄存器多
(2)将参数存在内存的块和表中,将块的地址通过寄存器来传递(Linux采用这种方法)
(3)通过程序放在或压入栈中,由操作系统弹出。有的操作系统采用堆栈方法
(这种方法不限制所传递的参数的数量或长度)

2.4 系统调用类型(了解)

系统调用大致可以分为五类:

进程控制,文件管理,设备管理,信息维护和通信

2.6 操作系统设计和实现(了解)

本节讨论设计和实现系统时所遇到的一些问题。虽然对这些问题没有完整的解决方案,但是有些方法还是很成功的。

1.不同操作系统的内部结构差异很大

2.系统设计的第一个问题是定义操作系统的目标和规格,在最高层,系统设计受到硬件选取和系统类型的影响

3.需求可以被分为两个类型:用户目标和系统目标

用户目标:系统应该方便使用,容易学习,可靠,快速等
系统目标:操作系统应容易设计,实现和维护,也应该灵活,可靠,高效且没有错误

4.注意区分两个概念:策略和机制
机制决定如何做,策略决定做什么

2.7 操作系统结构

2.7.1 简单结构

MS-DOS:利用最小的空间提供最多的功能,因此这个操作系统并没有被仔细地划分为模块
MS-DOS并没有很好地区分接口和功能层次
在这里插入图片描述
MS-DOS的层次结构

2.7.2 分层方法

硬件模块化有许多方法,其中一种是分层法

分层法把操作系统分成若干层(级)。最底层(层0)为硬件,最高层(层N)为用户接口
在这里插入图片描述

2.7.3 微内核

随着UNIX 操作系统的扩充,内核变得更大且更难管理。在20世纪80年代中期,卡内基一梅隆大学的研究人员开发了一个称为Mach的操作系统,该系统采用微内核(microkemel )技术来模块化内核。这种方法将所有非基本部分从内核中移走,并将它们实现为系统程序或用户程序

2.7.4 模块

1.最新的操作系统设计方法是用面向对象编程技术来生成模块化的内核。

2.Solaris操作系统结构被组织为7个可加载的内核模块围绕一个核心内核构成
在这里插入图片描述

2.8 虚拟机(了解)

虚拟机的基本思想是单个计算机(CPU 、内存、磁盘、网卡等)的硬件抽象为几个不同的执行部件,从而造成一种"幻觉",仿佛每个独立的执行环境都在自己的计算机上运行一样。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46841376/article/details/115140172