操作系统结构(一)

研究一个操作系统,或者说设计一个操作系统,需要从多个角度去了解操作系统。第一是通过考察所提供的服务(用户角度);第二是通过考察为用户和程序员提供的接口(程序员角度);第三是研究系统的各个组成部分及其相互关系(操作系统设计人员)。

主要内容:

*操作系统为用户、进程和其他系统提供的服务;

*组织操作系统的不同方法;

 在本节介绍操作系统提供的服务和操作系统的设计和实现。

1、操作系统服务

操作系统提供一个环境以执行程序。它向程序和这些程序的用户提供服务。这些服务帮助用户更高效地完成任务,同时确保系统高效率运行。

*用户界面(User Interface, UI

*程序执行:系统必须能将程序装入内存并运行程序。程序必须能结束执行,包括正常结束和部正常结束(指明错误)。

*I/O操作:运行程序可能需要I/O,这些I/O可能涉及文件或设备。为了提高效率和进行保护,用户通常不能直接控制I/O。因此,操作系统必须提供进行I/O操作的方法。

*文件系统操作

*通信:在许多情况下,一个进程需要与另一个进程交换信息。这种通信有两种主要形式。一种是发生在同一计算机(同一操作系统)运行的两个进程之间;另一种是运行在由网络连接起来的不同的计算机上的进程之间。通信可以通过共享内存来实现,也可通过消息交换技术来实现(对于消息交换,消息包通过操作系统在进程之间移动)。

*错误检测:操作系统需要知道可能出现的错误。错误可能发生在CPU或内存硬件(如内存错误或电源失败)、I/O设备(如网络连接出错、打印机缺纸)和用户程序中(如算术溢出、试图访问非法内存地址)。对于每种类型的错误,操作系统应该采取适当的动作以确保正确和一致的计算。

*资源分配:当同时有多个用户或多个作业运行时,系统必须为它们中的每一个分配资源。例如,为了更好地使用CPU,操作系统需要采用CPU调度算法以考虑CPU的速度、必须执行的作业、可用的寄存器数和其他因素。

*统计:需要记录哪些用户使用了多少和什么类型的资源。

*保护和安全

A、操作系统的用户界面:

#命令行界面(Command-Line Interface, CLI),采用文本命令,并用一定方法输入。

命令解释程序(Shell)的主要作用是获取并执行用户指定的下一条命令。执行这些命令有两种常用方法。一种方法是命令解释程序本身包含代码以执行这些命令;另一种方法是由系统程序实现大多数命令,命令解释程序用命令来识别文件以装入内存(Unix系统)。

#图形用户界面(Graphical User Interface),视窗系统,具有定位设备来指挥I/O、从菜单选择、选中部分并用键盘输入文本(像素Pixel)。

B、系统调用:

系统调用提供了操作系统提供的有效服务界面。由操作系统实现提供的所有系统调用所构成的集合即应用程序接口(Application Programming Interface,API)。一般应用程序开发人员根据API来设计程序。API是一系列适用于应用程序员的函数,包括传递给每个函数的参数及其返回的程序员想得到的值。有三种应用程序员常用的API:适用于Windows系统的Win32 API,适用于POSIX系统的POSIX API(包括几乎所有UNIX、Linux、Max OSX版本),以及适用于运行于Java虚拟机程序的Java API。

对于程序员,通过API操作系统接口的绝大多数细节被隐藏起来,并被执行支持库所管理。API、系统调用接口和操作系统之间的关系(处理一个Open()系统调用):

 

向操作系统传递参数的三种方法:

*寄存器参数传递;

*通过程序放入堆栈中;

*采用块或堆栈的方法。

C、系统调用类型:

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

*进程控制:

#结束,放弃

#装入,执行

#创建进程,终止进程

#取得进程属性,设置进程属性

#等待时间

#等待事件,唤醒事件

#分配和释放内存

*文件管理:

#创建文件,删除文件

#打开,关闭

#读、写、重定位

#取得文件属性,设置文件属性

*设备管理:

#请求设备,释放设备

#读、写、重定位

#取得设备属性,设置设备属性

#逻辑连接或断开设备

*信息维护:

#读取时间或日期,设置时间或日期

#读取系统数据,设置系统数据

#读取进程、文件或设备属性

#设置进程、文件或设备属性

*通信:消息传递模型和共享内存模型

#创建、删除通信连接

#发送、接收消息

#传递状态消息

#连接或断开远程设备

D、系统程序:

系统程序提供了一个方便的环境,以开发程序和执行程序。它们可以分为如下几类:

*文件管理

*状态信息:系统信息,详细的性能、登录和调试信息以及系统设置(如Windows注册表)。

*文件修改

*程序语言支持:常用程序设计程序语言的编译程序、汇编程序、调试程序和解释程序通常与操作系统一起提供给用户。

*程序装入和执行:绝对加载程序,重定位加载程序,链接编辑器和覆盖式加载程序。

*通信:提供在进程、用户和计算机系统之间创建虚拟连接的机制。

2、操作系统设计和实现

A、设计目标:

需求可以分为两个基本类:用户目标和系统目标。

用户目标:方便和容易使用,学习代价低,可靠安全快速。

系统目标:容易设计、实现和维护,灵活、可靠、高效且没有错误。

B、机制(Mechanism)与策略(Policy):

机制决定如何做,策略决定做什么。Unix/Linux的接口设计有一句通用的格言“提供机制而不是策略”。操作系统的本质是什么?管理者?亦或服务者?但归根到底,操作系统是一个执行者。

执行用户程序,所谓为用户服务;执行中断,所谓为外设服务;系统调用,所谓为广大的程序员服务;执行内核线程,为操作系统自身服务。而这些所有,它们执行的核心,无非是在恰当的时机,让哪个对象(程序、线程、中断服务程序、中断的下半部分、系统调用)占有CPU。换句话说,Unix/Linux抽象出对这些对象的执行机制:

*程序的执行机制——进程

*内核函数的执行机制——线程

*中断服务程序的执行机制——中断信号触发

*中断下半部的执行机制——softirq, tasklet,
工作队列

*系统调用的执行机制——软中断(0x80中断触发)

如果说机制是一种框架,那么,策略就是填充框架的一个个具体的实体。机制提供的是一种开放而宽松的环境,而策略就是在这个环境下赖以生存的生命个体。比如,我们编写的一个程序,fork()以后,就成为一个个进程的生命个体。而操作系统所提供给我们创建、执行以及结束进程的各种原语fork()、exec()、exit()等是统管各种进程的机制。我们所创建进程的死活并不会影响机制本身。

C、实现:使用高级语言来实现操作系统。通过改善数据结构和算法来提高系统性能,同时监视系统性能,增加代码以计算并显示系统行为和测量。

时间: 2024-10-30 10:02:55

操作系统结构(一)的相关文章

操作系统结构(二)

本节主要介绍操作系统结构和虚拟机. 操作系统结构 A.简单结构 两个样例: (1).MS-DOS 利用最小的空间提供更多的功能,没有仔细划分模块,没有很好地区分接口和功能层次.   (2).UNIX UNIX系统由内核和系统程序两个独立部分组成.内核进一步分为一系列接口和驱动程序.物理硬件之上和系统调用接口之下的所有部分作为内核,内核通过系统调用以提供文件系统.CPU调用.内存管理和其他操作系统功能.   B.分层方法 系统模块化可采用分层法,即操作系统分成若干层(级).最底层(层0)为硬件,最

操作系统概念学习笔记 7 操作系统结构

操作系统概念学习笔记 7 操作系统结构 系统设计 设计目标 系统设计的第一个问题是定义系统的目标与规格.在最高层,系统设计受到硬件选择和系统类型的影响. 需求可以分为两个基本类:用户目标和系统目标 策略和机制 操作系统设计的重要原理是策略(policy)和机制(mechanism)的区别.机制决定如何做,策略决定做什么.策略可能会随着时间或位置而有所改变,每次改变都可能需要底层机制的改变.系统更需要通用机制.这样策略的改变只需要重定义一些系统参数. 操作系统重要功能的改善可能是由于更好的数据结构

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

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

为何要用多线程编程

       线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.进程是操作系统结构的基础:是一个正在执行的程序:计算机中正在运行的程序实例:可以分配给处理器并由处理器执行的一个实体:由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元.         线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(

服务器安全:从“治标”到“治本”

长期以来,网络安全界对基于网络应用的外部防范技术关注较多,而当前通过系统内核加固对用户信息的保密性.完整性.可靠性进行有效的保护,正在成为继应用层网络安全产品后,又一行之有效的技术手段. 网络安全有局限:服务器是隐患 现有主流的服务器操作系统管理员权限,具有至高无上的权力,可谓无所不能.他可操控整个系统,随意修改系统资源,如浏览.修改所有数据文件.格式化硬盘.终止重要进程.终止进程.修改注册表等. 而这种权限在现有操作系统中极易被非法盗取,一旦落入非法用户或网络攻击者手中,对整个系统安全产生的威

Windows XP系统重要进程的解析

在XP系统正常运行的情况下,有非常多的系统进程支持着xp操作系统的运行,这些都是xp系统的主要进程,不过很多朋友并不了解进程是什么?进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动,说起来比较拗口,说白了进程是应用程序驻留内存中的活动子程序,任何应用都程序在运行的时候都有进程在活动,操作系统也不例外. 那么在XP系统中都有哪些基本进程呢?大家可以好好的看看,对于分析系统中是否有别的应用在运行很有效哦. 最基本的系统进程(也就是说,这些进程是系统运行的

Windows XP系统主要进程的解析

在XP系统正常运行的情况下,有非常多的系统进程支持着xp操作系统的运行,这些都是xp系统的主要进程,不过很多朋友并不了解进程是什么?进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动,说起来比较拗口,说白了进程是应用程序驻留内存中的活动子程序,任何应用都程序在运行的时候都有进程在活动,操作系统也不例外. 那么在XP系统中都有哪些基本进程呢?大家可以好好的看看,对于分析系统中是否有别的应用在运行很有效哦. 最基本的系统进程(也就是说,这些进程是系统运行的

操作系统引论

1.为什么要学习操作系统? 需要总体上掌握系统设计 操作系统包括了所有软件设计/实现问题,资源共享/管理.安全和身份验证.灵活性,健壮性.友好界面设计 存在人们意识不到的大量"操作系统" 嵌入式系统(PDA.手机-WP7,Android.机顶盒等) 应用系统中的小操作系统(MINI-OS) 日常生活中并不总是使用Windows系列的操作系统(Unix.Linux.Apple Macintosh.IBM OS/2等) 涉及到计算机科学的很多领域: 计算机体系结构/硬件 软件设计 程序设计

基于RT-Linux的开放式数控系统软件平台的研究

1 引言 90年代以来,数控技术发展的一个重要趋势是数控系统的开放化.目前,关于开放式控制系统的研究方兴米艾,全国都在抓紧进行开放式数控系统平台标准和规范的研究制定以及相关产品的开发.开放式数控系统允许用户根据需要自由选择和配置标准的硬件和软件模块,实现系统积本式"的集成,或者在开放平台基础上开发特定的功能模块,形成适合需要的专用系统.开放式数控系统具有如卜的基本特征: 互操作性:提供标准的数据格式.通信及交互机制; 可移植性:系统可运行不同的软硬件平台之上; 可扩充性:允许用户对系统进行扩展或