操作系统笔记-操作系统结构

操作系统提供的服务

用户界面(UI)有两种基本方法:提供命令行界面或命令中断,允许用户直接输入操作系统完成的命令,如命令行界面(command-line interface, CLI)、批界面;允许用户通过图形用户界面与操作系统交互多种形式,如图形用户界面(GUI)等。

Shell:有的操作系统在内核中包含的命令解释程序,用于获取并执行用户执行的下一条命令。

操作系统的系统调用system call提供了有效的服务界面。一般应用程序开发人员选择根据API设计程序,组成API的函数通常为应用程序员调用实际的系统调用。(如用于生成新进程的Win32函数CreateProcess()实际调用Windows内核中的NTCreateProcess()系统调用)好处在于:

1. 程序的可移植性,使得程序能够在支持同样API的系统上编译执行。

2. 实际的系统调用比API更为注重细节和困难。

 系统调用接口:由绝大多数程序设计语言的支持系统提供,作为应用程序与系统调用的链接。

系统调用接口截取API的系统调用,维护一个系统调用列表索引,调用所需的操作系统内核中的系统调用,不能够返回系统调用状态和其它返回值。

系统调用大致分为五大类:进程控制、文件管理、设备管理、信息维护和通信。

有两种通信模型:

1. 消息传递模型(message-passing model):通信进程彼此交换消息——已知另一个通信实体的名称,打开连接,交换消息,终止通信。(对交换少量数据很有用,不比避免冲突,对于计算机间通信【分布式环境】更容易实现)。

2. 共享内存模型(shared-memory model):两个或多个进程统一取消“阻止另一进程访问内存”限制,通过读写公共区域来交换数据。(因为能在计算机内以内存速度进行,十分方便且允许最大速度通信,但在保护和同步方面存在一些问题)。

自底向上计算机逻辑层次:硬件->操作系统->系统程序->应用程序

系统程序分为几类:文件管理、状态信息、文件修改、程序语言支持。程序装入和执行、通信。

绝大多数用户所看到的操作系统是由应用和系统程序而不是系统调用所决定的。

使用高级语言实现操作系统的优点:编写更快、更为紧凑、容易理解和调试,编译技术的改进使得只要通过重新编译就可改善整个操作系统的生成代码,操作系统更容易移植到不同的平台上。

缺点:仅仅在于降低速度和增加存储要求,如今不再是主要问题。

分层法:系统模块化的方法之一,将操作系统分为若干层,最底层(层0)为硬件,最高层(层N)为用户接口。层可作为抽象对象,由数据结构和一组可为上层所调用的子程序集合所组成,能调用底层的操作。

优点:构造和调试简单化。

缺点:因为当前层只能使用其下较低层,主要困难在于对层的详细定义;效率较差,每层参数修改和传递为系统调用增加了额外开销。

微内核:将所有非基本部分从内核中移到系统程序或用户程序得到更小的内核,微内核同行包括最小的进程和内存管理以及通信功能。

微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信,通信以消息传递形式提供。

微内核的优点:便于于扩充操作系统,所有新服务可以在用户空间增加而并不需要修改内核;当内核确实需要改变时,改变也会很小;容易从一种硬件平台设计移植到另一种硬件平台设计;因为绝大多数服务是作为用户而不是内核进程运行的,因此也提供了更好的安全性和可靠性。

微内核的缺点:必须忍受由于系统功能总开销增加而导致系统性能的下降。

现代UNIX如Solaris、Linux和Mac OS X常用方法:用面向对象编程技术生成模块化内核,由可加载的内核模块围绕核心内核,在启动或运行时动态加载模块。这种设计允许内核提供核心服务,也能动态实现特定功能。

比分层系统更为灵活,任一模块都能调用任何其它模块。

类似于微内核方法,核心模块只有核心功能以及其他模块加载和通信的相关信息,但因为模块不需要调用消息传递来通信,更为高效。

虚拟机:利用CPU调度和虚拟内存技术,操作系统造成一种进程有自己的处理器和虚拟内存的“幻觉”。虚拟机除提供与基本硬件相同的接口外不提供额外功能,每隔进程都有一个与基本计算机一样的虚拟副本。

创建虚拟机的原因:在并行运行几个不同的操作系统时能够共享相同的硬件。

虚拟机的主要困难:虚拟机数量多于磁盘驱动器时难以为每个虚拟机分配一个磁盘驱动器。

解决方法:通过在物理磁盘上为虚拟磁盘分配所需的磁道数提供虚拟磁盘(IBM的VM操作系统:小型磁盘),所有虚拟磁盘的大小总和必须比可用的物理磁盘小。

虚拟机没有直接资源共享,提供共享的两种实现方法:

1. 通过软件共享小型磁盘来模拟共享物理磁盘;

2. 通过软件定义虚拟机网络模拟物理网络,,通过虚拟通信网络传递消息。

实现:与物理机器一样,必须有虚拟用户模式和虚拟内核模式,都运行在物理用户模式。在物理机器上引起用户模式到内核模式转换的动作也必须在虚拟机上因此从虚拟用户模式到虚拟内核模式的转换。

优点:

1. 虚拟机之间完全独立,不同系统资源具有完全保护,没有安全问题。

2. 用于研究和开发操作系统的好工具,可在虚拟机上进行系统开发而无须中断正常的系统操作。

虚拟机实例:

1. VMware

虚拟层是VMware的核心。VMware运行在主操作系统之上,将物理硬件抽象为独立的虚拟机,每个虚拟机都有自己的虚拟CPU、内存、磁盘驱动、网络接口等,允许主操作系统将几个不同的客户操作系统作为独立虚拟机并行运行。

2. Java虚拟机(JVM)

JVM是一个抽象计算机规范,包括类加载器和Java解释器。对于每个Java类,Java编译器会生成与平台无关的字节码(bytecode)输出文件.class,可运行在任何JVM上。

类加载器从Java程序和Java API中加载编译过的.class文件;

加载类后,验证器检查.class文件是否为有效的Java字节码,有无堆栈溢出和下溢,确保字节码不进行指针操作(因为可能会提供非法内存访问);

如果类通过验证,Java解释器进行执行;

JVM通过垃圾收集(garbage collection,回收不再使用的内存并返回给系统)来自动管理内存,垃圾收集算法的研究能提高虚拟机中Java程序性能。

JVM可在1. 主操作系统的上层软件(解释器一次只能执行一个字节码)2. Web浏览器3. 为Java特别设计的芯片硬件上实现。

JIT(just-in-time)编译器:第一次调用Java方法时字节码被转换成本地及其语言,随后的调用采用本地机器指令和字节码操作完成,不需要全部重新解释。(速度更快)

.NET框架:允许基于.NET框架编程,不需要担心平台和底层操作系统特性,提供了一个介于底层体系结构和被运行程序之间的虚拟机CLR(公共语言运行时间)。

将C#或VB.NET源代码编译为平台无关的中间语言MS-IL;

编译好的.dll或.exe文件assembly包含MS-IL指令和元数据;

运行程序时CLR将assembly加载进应用程序域(Application Domain);

程序要求执行指令时,CLR将MS-IL指令编译为特定底层体系结构的本地代码;

指令编译为本地代码后保存下来以便CPU执行。

系统生成(system generation,SYSGEN):对某个特定的计算机场所配置和生成系统的过程。

引导程序(或引导装载程序):绝大多数计算机系统都有的一小块代码,用于定位内核,装入内存以启动计算机,该程序为ROM形式。

引导系统的过程:CPU接收到重置事件时,具有预先定义内存位置(引导程序所在位置)的指令寄存器被重新装载,并开始执行。

时间: 2024-10-11 02:51:35

操作系统笔记-操作系统结构的相关文章

操作系统笔记-操作系统结构-进程管理2015-6-5

一.操作系统结构: 1.操作系统结构:进程-可以获得cpu资源,内存-为了让更多的程序运行,外部设备,安全机制,网络等等构成了操作系统结构. 2.系统引导:root 二.进程管理 1.进程可以获得cpu资源,通过进程之间状态的切换,达到同时运行多个程序的效果.进程调度算法,无缝切换. 2.内存资源从0 到max 现在最大是4G,内存有几个分区,从下到上分别是 text(代码区),data(数据区) ,stack栈区,heap堆区 3.进程的状态,等待waitting.准备reading.阻塞.运

深入解析Windows操作系统笔记——CH2系统结构

2.系统结构 本章主要介绍系统的总体结构,关键部件之间的交互,以及运行在什么环境. 2.系统结构... 1 2.1 需求和设计目标... 1 2.2 操作系统模型... 2 2.3 总体结构... 2 2.3.1 可移植性... 3 2.3.2 对称多处理... 3 2.3.3 可伸缩性()5 2.3.4 客户和服务器版本的区别... 5 2.3.5 版本检查... 5 2.4 关键的系统组件... 5 2.4.1 环境子系统和子系统dll6 2.4.1.1 Windows子系统... 7 2.

操作系统概念学习笔记 4 操作系统结构和操作简述

操作系统概念学习笔记 4 操作系统结构和操作简述 操作系统结构 多道程序设计 多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法.也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间.只要有一个程序或任务可以执行,cpu就不会空闲. 但是不能提供与计算机系统直接交互的能力. 分时系统(多任务) 分时系统(多任务)是多道程序设计的延伸,在分时系统中,虽然cpu还是通过在作业之间的切换来执行多个作业,但是由于切换频率很高,用户可以

【操作系统笔记】一、引论

操作系统引论 操作系统的目标 方便性 有效性 可扩充性 开发性 操作系统的作用 OS作为用户与计算机硬件系统之间的接口,即OS处于用户与计算机硬件之间,用户通过OS来使用计算机系统 注意,OS是一个系统软件 用户可以通过以下三种方式使用计算机 命令方式 系统调用方式 图形.窗口模式 OS作为计算机资源的管理者 计算机资源包括:处理器,存储器,I/O设备以及信息(数据和程序) OS的功能: 处理机管理:分配和控制处理机 存储器管理:负责内存的分配与回收 I/O设备管理:负责I/O设备的分配与操纵

linux基础学习笔记——操作大全

作者:liaoyi 更新时间:2014-6-2 ****************基本操作***************** 关机 shutdown -h now    root用户               init 0              root用户halt      root+一般用户poweroff 重启shutdown -r now    root用户init6     root用户reboot            root+一般用户 注意:1.shutdown 比较灵活,可

操作系统结构

操作系统结构 操作系统服务 一组操作系统服务提供对用户很有用的函数:用户界面:所有的操作系统都有用户界面(user interface,UI).用户界面可以有多种形式.一种是命令行界面(command-line interface,CLI),它采用文本命令,并用一定的方法输入(即一种允许输入并编辑的命令).另一种是批界面,其中控制这些命令和命令的指令被输入文件中,通过执行文件来实现.最为常用的是图形用户界面(graphical user interface,GUI),此时界面是一个视窗系统,它具

深入解析Windows操作系统笔记——CH1概念和术语

1.概念和工具 本章主要介绍Windows操作系统的关键概念和术语 1.概念和工具... 1 1.1操作系统版本... 1 1.2基础概念和术语... 2 1.2.1Windows API2 1.2.2 服务.函数和例程... 3 1.2.3 进程.线程和作业... 4 1.2.3.1 进程... 4 1.2.3.2 线程... 4 1.2.3.3 虚拟地址描述符... 4 1.2.3.4 作业... 4 1.2.4 虚拟内存... 5 1.2.5 内核模式和用户模式... 5 1.2.6 终端

Android - Android操作系统结构

Android操作系统结构 本文地址:http://blog.csdn.net/caroline_wendy 结构图: 1. Linux内核(内核空间) 可移植性.安全性.实用功能. 2. 本地层(用户空间) (1) HAL(Hardware Abstraction Layer): 硬件抽象层,使用共享本地库抽象了每个主要的设备驱动程序,这个库是一个对象, 支持任何主要硬件驱动程序的共同接口. (2) 本地库: C/C++库,支持Android应用程序框架层. (3) 本地守护进程: 守护进程,

软件设计师必备——操作系统·PV操作

引子 我们在看操作系统时,常常被一些看似难懂的概念所迷惑,比如进程,线程,页,段,虚拟存储等,看似无从着手,但是,我们想过这个问题吗?当初发明这些的人,他们是怎么做到的?他们是神人吗?他们天生就能创造吗?NO!!!他们的从出生开始,经历的种种快乐,磨难,艰辛这些我们统称为生活,是这些造就了这个想法的诞生!举个例子,为什么会有飞机?因为我们看到了鸟儿在天上的自由!为什么会有轮船,因为我们看到了,鱼在水里的畅快!为什么会有计算机?恩--我想是因为我们有老师,我们希望我们的"老师"使我们不用