《操作系统课件第2章》由会员分享,可在线阅读,更多相关《操作系统课件第2章(44页珍藏版)》请在金锄头文库上搜索。
1、操作系统 Operating Systems,操作系统课程组 南京邮电大学,教材:操作系统教程,人民邮电出版社 ,2009年出版,第2章 用户界面,操作系统是用户与计算机硬件之间的接口,用户通过操作系统的帮助,可以快速、有效和安全地操作计算机系统中的各类资源,处理自己的程序。为了方便地使用操作系统,操作系统向用户提供了“用户与操作系统之间的接口”,通常也称为用户界面。该界面支持用户与操作系统之间进行交互,即用户向操作系统提出请求,操作系统把结果返回给用户。 用户界面以多种形式呈现在用户面前,一种是联机命令形式,直接提供给用户在终端上使用;另一种是系统调用形式,提供给用户编程时使用。在现代操作系
2、统中,为进一步方便用户使用计算机,又增加了一种图形接口。在Internet广为流行的今天,又出现了一种面向网络的网络用户接口。,第2章 用户界面,2.1 用户工作环境 2.2 操作系统用户界面 2.3 系统调用 2.4 Linux的用户界面,2.1 用户工作环境,2.1.1 用户环境 2.1.2 系统生成和系统启动 2.1.3 运行一个用户程序的过程,2.1.1 用户环境,形成用户环境包含下面3个方面的工作。 设计合理的操作命令,它允许用户处理由操作系统支持的各种目标,如设备、文件、进程。 提供各种硬件资源,并要提供关于操作系统的使用说明。 将操作系统装入计算机,并对系统参数和控制结构进行初始
3、化,以使计算机系统能够为用户工作。,2.1.2 系统生成和系统启动,系统初启又叫系统引导。它的任务是把操作系统的必要部分装入内存并使系统运行,最终使系统处于命令接收状态 。 系统引导分为3个阶段。 初始引导:把系统核心装入内存中的指定位置,并在指定地址启动。 核心初始化:执行系统核心的初启子程序,初始化系统核心数据。 系统初始化:为用户使用系统做准备。,(1)初始引导,初始引导也叫自举。自举的含义是操作系统把自己建立起来,这是目前大多数系统所常用的一种引导方法。 初始引导的任务就是把核心送入内存并启动它运行。系统核心是存放在辅存上的。如何能在辅存上的文件中找到这个核心并送到内存中,这需要有一程
4、序做这件事,该程序称为装配程序。,然而,这一装配程序也在辅存中,如何把该装配程序首先装入内存呢? 这需要有一个初始引导程序,而且这个程序必须在一开机时能自动运行,这就只有求助于硬件了。,在现代大多数计算机系统中,在它的只读存储器中都有一段用于初始引导的固化代码。 当系统加电或按下某种按钮时,硬件电子线路便会自动地把只读存储器中这段初始引导程序读入内存,并将CPU的控制权交给它。 初始引导程序的任务是将辅存中的装配程序读入内存。这个装配程序必须存放在辅存的固定位置(称为引导块)上,只读存储器只会从这个引导块中读取内容。这就要求将装配程序事先存放在这个引导块上。,(2)核心初始化, 核心页表寄存器
5、与核心数据初始化。 建立0号进程。0号进程是系统建立的第1个且永远处于核心态的唯一的进程。它的主要任务是按照系统的需要把即将运行的进程送入内存,并把近期内不运行的进程送到辅存上。 建立1号进程。1号进程是建立初始进程,它的作用是实现系统的初始化。,(3)系统初始化,这一阶段的主要任务是做好一切准备工作,使系统处于命令接受状态,这时用户可以使用机器了。 系统初始化是由1号进程执行初始化程序实现的。它分为两个阶段完成: 为控制台终端建造一个进程,执行命令解释程序,接受操作员或用户的命令; 系统继续为若干用户终端建立命令解释进程,接受一般用户的命令(这一环境称为多用户环境)。这时,一般用户就可以用系
6、统了,系统初启全部完成。,2.1.3 运行一个用户程序的过程,控制计算机工作的最简单的办法是,由操作员通过控制台(或用户在终端设备上)键入一条条命令。 用户可先将源程序通过编辑建立在磁盘上,接着发“编译”命令,操作系统接到这条命令后,将编译程序调入内存并启动它工作。 然后,用户再发出“连接”命令,操作系统执行该命令,将生成一个完整的、可执行的内存映像程序。 最后发出“运行”命令,由操作系统启动内存映像程序运行,从而计算出结果。,图2-1 作业处理的4个步骤, 编辑(修改):建立一个新文件,或对已有的文件中的错误进行修改。 编译:将源程序翻译成目标代码。完成这一步工作需要有相应语言的编译器。 连
7、接:将主程序和其他所需要的子程序和例行程序连接装配在一起,使之成为一个可执行的、完整的内存映像文件。 运行:将内存映像文件调入内存,并启动运行,最后得出计算结果。,2.2 操作系统用户界面,2.2.1 操作系统的用户界面 2.2.2 操作接口 2.2.3 图形用户接口,2.2.1 操作系统的用户界面,操作系统可以通过程序接口和操作接口两种方式把它的服务和功能提供给用户。 程序接口又称应用编程接口,程序中使用这个接口可以调用操作系统的服务和功能。许多操作系统的程序接口由一组系统调用(system call)组成,因此,用户在编写的程序中使用“系统调用”就可以获得操作系统的底层服务,使用或访问系统
8、管理的各种软硬件资源。 操作接口又称命令接口,是操作系统为用户操作控制计算机工作和提供服务的手段的集合,通常可借助操作控制命令、图形操作界面等来实现。,2.2.2 操作接口,根据这些命令所完成功能的不同,可把它们分成以下几类:系统访问类,磁盘操作类,文件操作类,目录操作类,通信类,其他命令。,1系统访问类 用户在每次开始使用某终端时,都须使用该命令,使系统能识别该用户。凡要在多用户系统的终端上上机的用户,都必须先在系统管理员处获得一合法的注册名和口令。以后,每当用户在接通其所用终端的电源后,便由系统直接调用,并在屏幕上显示信息提示用户键入自己的注册名和口令。,2键盘操作命令 (1)磁盘格式化命
9、令 (2)复制整个软盘命令 (3)软盘比较命令 (4)备份命令,3文件操作命令 (1)显示文件命令 (2)拷贝文件命令 (3)文件比较命令 (4)重新命名命令 (5)删除文件命令,4目录操作命令 (1)建立子目录命令 (2)显示目录命令 (3)删除子目录命令 (4)显示目录结构命令 (5)改变当前目录命令,5其他命令 (1)输入/输出重定向命令 如果在命令中设置输出重定向“”符,其后接文件名或设备名,表示将命令的输出改向,送到指定文件或设备上。 类似地,若在命令中设置输入重定向“”符,则不再是从键盘而是从重定向符左边参数所指定的文件或设备上,取得输入信息。 (2)管道连接 管道连接是指把第1条
10、命令的输出信息作为第2条命令的输入信息;类似地,又可把第2条命令的输出信息作为第3条命令的输入信息。这样,由两个(含两条)以上的命令可形成一条管道。在操作系统中,通常使用“|”作为管道符号。其一般格式为:Command1 |Command2| | Commandn。,(3)过滤命令 例如,MS-DOS中用命令 find/N“erase“(路径名) 可对由路径名指定的输入文件逐行检索,把含有字符串“erase”的行输出。其中,/N是选择开关,表示输出含有指定字串的行;如果不用N而用C,则表示只输出含有指定字串的行数;若用V,则表示输出不含指定字串的行。 (4)批命令 为了能连续地使用多条键盘命令
11、,或多次反复地执行指定的若干条命令,而又免去每次重敲这些命令的麻烦,可以提供一特定文件。,2.2.3 图形用户接口,GUI采用了图形化的操作界面,使用WIMP技术(即窗口Window、图符Icon、菜单Menu和鼠标Pointing device),引入形象的各种图符将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可以通过选择窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制和操作。,GUI采用了图形化的操作界面,使用WIMP技术(即窗口Window、图符Icon、菜单Menu和鼠标Pointing device),引入形象的各种图符将系统的各项功能、各种应用程序和文件,
12、直观、逼真地表示出来。用户可以通过选择窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制和操作。此时,用户不必死记硬背操作命令,而能轻松自如地完成各项工作 。,2.3 系统调用,2.3.1 系统调用的基本概念 2.3.2 系统调用的基本类型 2.3.2 系统调用的实现,2.3.1 系统调用的基本概念,系统调用是为了扩充机器功能、增强系统能力、方便用户使用而建立的。用户程序或其他系统程序通过系统调用就可以访问系统资源,调用操作系统功能,而不必了解操作系统内部结构和硬件细节,它是用户程序或其他系统程序获得操作系统服务的唯一途径。,系统调用本质上是应用程序请求操作系统内核完成某功能时的一种过程
13、调用,但它是一种特殊的过程调用,它与一般的过程调用有下述几方面明显的差别。 调用形式不同。过程(函数)使用一般调用指令,其转向地址是固定不变的,包含在跳转语句中;但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。 被调用代码的位置不同。过程(函数)调用是一种静态调用,调用者和被调用代码在同一程序内,经过连接编辑后作为目标代码的一部份。而系统调用是一种动态调用,系统调用的处理代码在调用程序之外(在操作系统中),这样一来,系统调用处理代码升级或修改时,与调用程序无关。, 提供方式不同。过程(函数)往往由编译系统提供,不同编译系统提供的过程(函数)可以不同;系统调用由操作系统提供,一旦
14、操作系统设计好,系统调用的功能、种类与数量便固定不变了。 调用的实现不同。程序使用一般机器指令(跳转指令)来调用过程(函数),是在用户态运行的;程序执行系统调用,是通过中断机构来实现,需要从用户态转变到核心态,在管理状态执行。,2.3.2 系统调用的基本类型,1进程控制类系统调用 创建和终止进程的系统调用。 获得和设置进程属性的系统调用。 等待某事件出现的系统调用。 2文件操纵类系统调用 创建和删除文件。 打开和关闭文件。 读和写文件。,3进程通信类系统调用 在操作系统中经常采用两种进程通信方式,即消息传递方式和共享存储区方式。 4设备管理系统调用 申请设备、释放设备、设备I/O和重定向、获得
15、和设置设备属性、逻辑上连接和释放设备。 5内存管理系统调用 申请内存和释放内存;虚拟存储器的管理。 6信息维护系统调用 建立和断开通信连接、发送和接收消息、传送状态信息、联接和断开远程设备。,2.3.2 系统调用的实现,在操作系统中,实现系统调用功能的机制称陷入或异常处理机制,由于系统调用而引起处理器中断的机器指令称访管指令(supervisor)、陷入指令(trap)或异常中断指令(interrupt)。,系统调用的实现有以下几点: 编写系统调用处理程序; 设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数; 陷入处理机制,需开辟现场保
16、护区,以保存发生系统调用时的处理器现场。,图2-2 系统调用的处理过程,2.4 Linux的用户界面,2.4.1 Linux的命令行接口 2.4.2 Linux的图形方式 2.4.3 Linux的系统调用 2.4.4 与系统调用有关的数据结构,2.4.1 Linux的命令行接口,Linux命令行是Linux系统的核心,利用命令行可以对系统进行各种配置,要熟练并成功地管理Linux操作系统,必须对Linux下的命令行有深入的理解。 与图形界面相比,利用命令行对系统进行管理和操作显得更为快捷和安全。特别是在服务器应用方面,Linux命令行更是处于一种核心的应用,这主要是因为在字符界面下的操作具有更大的稳定性和安全性能。,2.4.2 Linux的图形方式,Linux桌面发行版通常包含了X Window系统(也称X),包括桌面管理器和窗口管理器。桌面管理器使得可以通过图标而不用输入操作命令来实现用户与系统程序的交互。目前,比较流行