《南邮操作系统课件(第二章).ppt》由会员分享,可在线阅读,更多相关《南邮操作系统课件(第二章).ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统Operating Systems 操作系统课程组南京邮电大学WINDOWS WINDOWSUNIX UNIXLINUX LINUXOS2 OS2VxWorks VxWorksMac OS Mac OS教材:操作系统教程,人民邮电出版社 教材:操作系统教程,人民邮电出版社,2009 2009年出版 年出版第2章 用户界面 操作系统是用户与计算机硬件之间的接口,用户通过操作 操作系统是用户与计算机硬件之间的接口,用户通过操作系统的帮助,可以快速、有效和安全地操作计算机系统中 系统的帮助,可以快速、有效和安全地操作计算机系统中的各类资源,处理自己的程序。为了方便地使用操作系统,的各类资源,
2、处理自己的程序。为了方便地使用操作系统,操作系统向用户提供了 操作系统向用户提供了“用户与操作系统之间的接口 用户与操作系统之间的接口”,通常也称为用户界面。该界面支持用户与操作系统之间进 通常也称为用户界面。该界面支持用户与操作系统之间进行交互,即用户向操作系统提出请求,操作系统把结果返 行交互,即用户向操作系统提出请求,操作系统把结果返回给用户。回给用户。用户界面以多种形式呈现在用户面前,一种是联机命令形 用户界面以多种形式呈现在用户面前,一种是联机命令形式,直接提供给用户在终端上使用;另一种是系统调用形 式,直接提供给用户在终端上使用;另一种是系统调用形式,提供给用户编程时使用。在现代操
3、作系统中,为进一 式,提供给用户编程时使用。在现代操作系统中,为进一步方便用户使用计算机,又增加了一种图形接口。在 步方便用户使用计算机,又增加了一种图形接口。在Internet Internet广为流行的今天,又出现了一种面向网络的网络 广为流行的今天,又出现了一种面向网络的网络用户接口。用户接口。第2章 用户界面 2.1 2.1 用户工作环境用户工作环境 2.2 2.2 操作系统用户界面操作系统用户界面 2.3 2.3 系统调用系统调用 2.4 2.4 LinuxLinux的用户界面的用户界面2.1 用户工作环境 2.1.1 用户环境 2.1.2 系统生成和系统启动 2.1.3 运行一个用
4、户程序的过程 2.1.1 用户环境形成用户环境包含下面3个方面的工作。设计合理的操作命令,它允许用户处理由操作系统支持的各种目标,如设备、文件、进程。提供各种硬件资源,并要提供关于操作系统的使用说明。将操作系统装入计算机,并对系统参数和控制结构进行初始化,以使计算机系统能够为用户工作。2.1.2 系统生成和系统启动系统初启又叫系统引导。它的任务是把操作系统的必要部分装入内存并使系统运行,最终使系统处于命令接收状态。系统引导分为3个阶段。l l初始引导:把系统核心装入内存中的指定位初始引导:把系统核心装入内存中的指定位置,并在指定地址启动。置,并在指定地址启动。l l核心初始化:执行系统核心的初
5、启子程序,核心初始化:执行系统核心的初启子程序,初始化系统核心数据。初始化系统核心数据。l l系统初始化:为用户使用系统做准备。系统初始化:为用户使用系统做准备。(1)初始引导初始引导也叫自举。自举的含义是操作系统把自己建立起来,这是目前大多数系统所常用的一种引导方法。初始引导的任务就是把核心送入内存并启动它运行。系统核心是存放在辅存上的。如何能在辅存上的文件中找到这个核心并送到内存中,这需要有一程序做这件事,该程序称为装配程序。然而,这一装配程序也在辅存中,如何把该装配程序首先装入内存呢?这需要有一个初始引导程序,而且这个程序必须在一开机时能自动运行,这就只有求助于硬件了。在现代大多数计算机
6、系统中,在它的只读存储器在现代大多数计算机系统中,在它的只读存储器中都有一段用于初始引导的固化代码。中都有一段用于初始引导的固化代码。当系统加电或按下某种按钮时,硬件电子线路便当系统加电或按下某种按钮时,硬件电子线路便会自动地把只读存储器中这段初始引导程序读入会自动地把只读存储器中这段初始引导程序读入内存,并将内存,并将CPUCPU的控制权交给它。的控制权交给它。初始引导程序的任务是将辅存中的装配程序读入初始引导程序的任务是将辅存中的装配程序读入内存。这个装配程序必须存放在辅存的固定位置内存。这个装配程序必须存放在辅存的固定位置(称为引导块)上,只读存储器只会从这个引导(称为引导块)上,只读存
7、储器只会从这个引导块中读取内容。这就要求将装配程序事先存放在块中读取内容。这就要求将装配程序事先存放在这个引导块上。这个引导块上。(2)核心初始化 核心页表寄存器与核心数据初始化。建立0号进程。0号进程是系统建立的第1个且永远处于核心态的唯一的进程。它的主要任务是按照系统的需要把即将运行的进程送入内存,并把近期内不运行的进程送到辅存上。建立1号进程。1号进程是建立初始进程,它的作用是实现系统的初始化。(3)系统初始化 这一阶段的主要任务是做好一切准备工作,使系这一阶段的主要任务是做好一切准备工作,使系统处于命令接受状态,这时用户可以使用机器了。统处于命令接受状态,这时用户可以使用机器了。系统初
8、始化是由系统初始化是由11号进程执行初始化程序实现的。号进程执行初始化程序实现的。它分为两个阶段完成:它分为两个阶段完成:l l 为控制台终端建造一个进程,执行命令解释程序,接 为控制台终端建造一个进程,执行命令解释程序,接受操作员或用户的命令;受操作员或用户的命令;l l 系统继续为若干用户终端建立命令解释进程,接受一 系统继续为若干用户终端建立命令解释进程,接受一般用户的命令(这一环境称为多用户环境)。这时,般用户的命令(这一环境称为多用户环境)。这时,一般用户就可以用系统了,系统初启全部完成。一般用户就可以用系统了,系统初启全部完成。2.1.3 运行一个用户程序的过程 控制计算机工作的最
9、简单的办法是,由操作员通控制计算机工作的最简单的办法是,由操作员通过控制台(或用户在终端设备上)键入一条条命过控制台(或用户在终端设备上)键入一条条命令。令。用户可先将源程序通过编辑建立在磁盘上,接着用户可先将源程序通过编辑建立在磁盘上,接着发发“编译编译”命令,操作系统接到这条命令后,将命令,操作系统接到这条命令后,将编译程序调入内存并启动它工作。编译程序调入内存并启动它工作。然后,用户再发出然后,用户再发出“连接连接”命令,操作系统执行命令,操作系统执行该命令,将生成一个完整的、可执行的内存映像该命令,将生成一个完整的、可执行的内存映像程序。程序。最后发出最后发出“运行运行”命令,由操作系
10、统启动内存映命令,由操作系统启动内存映像程序运行,从而计算出结果。像程序运行,从而计算出结果。图2-1 作业处理的4个步骤 编辑(修改):建立一个新文件,或对已有的文件中的错误进行修改。编译:将源程序翻译成目标代码。完成这一步工作需要有相应语言的编译器。连接:将主程序和其他所需要的子程序和例行程序连接装配在一起,使之成为一个可执行的、完整的内存映像文件。运行:将内存映像文件调入内存,并启动运行,最后得出计算结果。2.2 操作系统用户界面 2.2.1 操作系统的用户界面 2.2.2 操作接口 2.2.3 图形用户接口 2.2.1 操作系统的用户界面 操作系统可以通过程序接口和操作接口两种方式操作
11、系统可以通过程序接口和操作接口两种方式把它的服务和功能提供给用户。把它的服务和功能提供给用户。程序接口又称应用编程接口,程序中使用这个接程序接口又称应用编程接口,程序中使用这个接口可以调用操作系统的服务和功能。许多操作系口可以调用操作系统的服务和功能。许多操作系统的程序接口由一组系统调用(统的程序接口由一组系统调用(system callsystem call)组)组成,因此,用户在编写的程序中使用成,因此,用户在编写的程序中使用“系统调用系统调用”就可以获得操作系统的底层服务,使用或访问就可以获得操作系统的底层服务,使用或访问系统管理的各种软硬件资源。系统管理的各种软硬件资源。操作接口又称命
12、令接口,是操作系统为用户操作操作接口又称命令接口,是操作系统为用户操作控制计算机工作和提供服务的手段的集合,通常控制计算机工作和提供服务的手段的集合,通常可借助操作控制命令、图形操作界面等来实现。可借助操作控制命令、图形操作界面等来实现。2.2.2 操作接口根据这些命令所完成功能的不同,可把它们分成以下几类:系统访问类,磁盘操作类,文件操作类,目录操作类,通信类,其他命令。1系统访问类用户在每次开始使用某终端时,都须使用该命令,使系统能识别该用户。凡要在多用户系统的终端上上机的用户,都必须先在系统管理员处获得一合法的注册名和口令。以后,每当用户在接通其所用终端的电源后,便由系统直接调用,并在屏
13、幕上显示信息提示用户键入自己的注册名和口令。2键盘操作命令(1)磁盘格式化命令(2)复制整个软盘命令(3)软盘比较命令(4)备份命令 3文件操作命令(1)显示文件命令(2)拷贝文件命令(3)文件比较命令(4)重新命名命令(5)删除文件命令 4目录操作命令(1)建立子目录命令(2)显示目录命令(3)删除子目录命令(4)显示目录结构命令(5)改变当前目录命令 55其他命令其他命令(11)输入)输入/输出重定向命令输出重定向命令l l 如果在命令中设置输出重定向 如果在命令中设置输出重定向“”符,其后接文件 符,其后接文件名或设备名,表示将命令的输出改向,送到指定文件 名或设备名,表示将命令的输出改
14、向,送到指定文件或设备上。或设备上。l l 类似地,若在命令中设置输入重定向 类似地,若在命令中设置输入重定向“”符,则不 符,则不再是从键盘而是从重定向符左边参数所指定的文件或 再是从键盘而是从重定向符左边参数所指定的文件或设备上,取得输入信息。设备上,取得输入信息。(22)管道连接)管道连接 管道连接是指把第管道连接是指把第11条命令的输出信息作为第条命令的输出信息作为第22条条命令的输入信息;类似地,又可把第命令的输入信息;类似地,又可把第22条命令的输条命令的输出信息作为第出信息作为第33条命令的输入信息。这样,由两个条命令的输入信息。这样,由两个(含两条)以上的命令可形成一条管道。在
15、操作(含两条)以上的命令可形成一条管道。在操作系统中,通常使用系统中,通常使用“|”“|”作为管道符号。其一般格作为管道符号。其一般格式为:式为:Command1|Command2|Command1|Command2|CommandnCommandn。(3 3)过滤命令)过滤命令 例如,例如,MS-DOS MS-DOS中用命令 中用命令 find/Nerase find/Nerase(路径名)(路径名)可对由路径名指定的输入文件逐行检索,把含有字符串 可对由路径名指定的输入文件逐行检索,把含有字符串“erase”“erase”的行输出。其中,的行输出。其中,/N/N是选择开关,表示输出含 是选
16、择开关,表示输出含有指定字串的行;如果不用 有指定字串的行;如果不用N N而用 而用C C,则表示只输出含有,则表示只输出含有指定字串的行数;若用 指定字串的行数;若用V V,则表示输出不含指定字串的行。,则表示输出不含指定字串的行。(4 4)批命令)批命令 为了能连续地使用多条键盘命令,或多次反复地执行指定 为了能连续地使用多条键盘命令,或多次反复地执行指定的若干条命令,而又免去每次重敲这些命令的麻烦,可以 的若干条命令,而又免去每次重敲这些命令的麻烦,可以提供一特定文件。提供一特定文件。2.2.3 图形用户接口 GUI采用了图形化的操作界面,使用WIMP技术(即窗口Window、图符Ico
17、n、菜单Menu和鼠标Pointing device),引入形象的各种图符将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可以通过选择窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制和操作。GUI采用了图形化的操作界面,使用WIMP技术(即窗口Window、图符Icon、菜单Menu和鼠标Pointing device),引入形象的各种图符将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可以通过选择窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制和操作。此时,用户不必死记硬背操作命令,而能轻松自如地完成各项工作。2.3 系统调用 2.3.1 系统
18、调用的基本概念 2.3.2 系统调用的基本类型 2.3.2 系统调用的实现 2.3.1 系统调用的基本概念系统调用是为了扩充机器功能、增强系统能力、方便用户使用而建立的。用户程序或其他系统程序通过系统调用就可以访问系统资源,调用操作系统功能,而不必了解操作系统内部结构和硬件细节,它是用户程序或其他系统程序获得操作系统服务的唯一途径。系统调用本质上是应用程序请求操作系统内核完系统调用本质上是应用程序请求操作系统内核完成某功能时的一种过程调用,但它是一种特殊的成某功能时的一种过程调用,但它是一种特殊的过程调用,它与一般的过程调用有下述几方面明过程调用,它与一般的过程调用有下述几方面明显的差别。显的
19、差别。调用形式不同。过程(函数)使用一般调用指调用形式不同。过程(函数)使用一般调用指令,其转向地址是固定不变的,包含在跳转语句令,其转向地址是固定不变的,包含在跳转语句中;但系统调用中不包含处理程序入口,而仅仅中;但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。提供功能号,按功能号调用。被调用代码的位置不同。过程(函数)调用是被调用代码的位置不同。过程(函数)调用是一种静态调用,调用者和被调用代码在同一程序一种静态调用,调用者和被调用代码在同一程序内,经过连接编辑后作为目标代码的一部份。而内,经过连接编辑后作为目标代码的一部份。而系统调用是一种动态调用,系统调用的处理代码系统
20、调用是一种动态调用,系统调用的处理代码在调用程序之外(在操作系统中),这样一来,在调用程序之外(在操作系统中),这样一来,系统调用处理代码升级或修改时,与调用程序无系统调用处理代码升级或修改时,与调用程序无关。关。提供方式不同。过程(函数)往往由编译系统提供方式不同。过程(函数)往往由编译系统提供,不同编译系统提供的过程(函数)可以不提供,不同编译系统提供的过程(函数)可以不同;系统调用由操作系统提供,一旦操作系统设同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、种类与数量便固定不变计好,系统调用的功能、种类与数量便固定不变了。了。调用的实现不同。程序使用一般机器指令(跳调用的
21、实现不同。程序使用一般机器指令(跳转指令)来调用过程(函数),是在用户态运行转指令)来调用过程(函数),是在用户态运行的;程序执行系统调用,是通过中断机构来实现,的;程序执行系统调用,是通过中断机构来实现,需要从用户态转变到核心态,在管理状态执行。需要从用户态转变到核心态,在管理状态执行。2.3.2 系统调用的基本类型 1进程控制类系统调用l l 创建和终止进程的系统调用。创建和终止进程的系统调用。l l 获得和设置进程属性的系统调用。获得和设置进程属性的系统调用。l l 等待某事件出现的系统调用。等待某事件出现的系统调用。2文件操纵类系统调用l l 创建和删除文件。创建和删除文件。l l 打
22、开和关闭文件。打开和关闭文件。l l 读和写文件。读和写文件。33进程通信类系统调用进程通信类系统调用l l 在操作系统中经常采用两种进程通信方式,即消息传 在操作系统中经常采用两种进程通信方式,即消息传递方式和共享存储区方式。递方式和共享存储区方式。44设备管理系统调用设备管理系统调用l l 申请设备、释放设备、设备 申请设备、释放设备、设备I/O I/O和重定向、获得和设置 和重定向、获得和设置设备属性、逻辑上连接和释放设备。设备属性、逻辑上连接和释放设备。55内存管理系统调用内存管理系统调用l l 申请内存和释放内存;虚拟存储器的管理。申请内存和释放内存;虚拟存储器的管理。66信息维护系
23、统调用信息维护系统调用l l 建立和断开通信连接、发送和接收消息、传送状态信 建立和断开通信连接、发送和接收消息、传送状态信息、联接和断开远程设备。息、联接和断开远程设备。2.3.2 系统调用的实现在操作系统中,实现系统调用功能的机制称陷入或异常处理机制,由于系统调用而引起处理器中断的机器指令称访管指令(supervisor)、陷入指令(trap)或异常中断指令(interrupt)。系统调用的实现有以下几点:l l编写系统调用处理程序;编写系统调用处理程序;l l设计一张系统调用入口地址表,每个入口地址设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还都指向一个
24、系统调用的处理程序,有的系统还包含系统调用自带参数的个数;包含系统调用自带参数的个数;l l陷入处理机制,需开辟现场保护区,以保存发陷入处理机制,需开辟现场保护区,以保存发生系统调用时的处理器现场。生系统调用时的处理器现场。图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下的命令行有
25、深入的理解。与图形界面相比,利用命令行对系统进行管理和操作显得更为快捷和安全。特别是在服务器应用方面,Linux命令行更是处于一种核心的应用,这主要是因为在字符界面下的操作具有更大的稳定性和安全性能。2.4.2 Linux的图形方式 Linux桌面发行版通常包含了X Window系统(也称X),包括桌面管理器和窗口管理器。桌面管理器使得可以通过图标而不用输入操作命令来实现用户与系统程序的交互。目前,比较流行的桌面管理器有GNOME和KDE。GNOME即GNU网络对象模型环境(The GNU Network Object Model Environment),是开放源码运动的一个重要组成部分。K
26、DE是K Desktop Environment(K桌面环境)的缩写。KDE是一种著名的运行于UNIX以及Linux,FreeBSD等类UNIX 操作系统上面的自由图形工作环境。2.4.3 Linux的系统调用 Linux通过各种系统调用为应用系统、为进程提供了编程界面。Linux的系统调用形式与POSIX兼容,也是一套C语言函数名的集合,如fork(),exit(),read(),write()等,共221个(版)。Linux系统调用的内部实现方式是经过INT 0X80软中断调用进入后,再根据系统调用号分门别类地服务。2.4.4 与系统调用有关的数据结构 1系统调用响应函数的函数名约定函数名
27、以“sys_”开头,后跟该系统调用的名字,由此构成221个形似sys_name()的函数名。例如,系统调用fork()的响应函数是sys_fork()(kernel/fork.c);exit()的响应函数是sys_exit()(kernel/exit.c)。22系统调用号系统调用号 文件文件include/asm-i386/unistd.hinclude/asm-i386/unistd.h为每个系统调用为每个系统调用规定了唯一的编号,部分编号如下所示:规定了唯一的编号,部分编号如下所示:8#define _NR_exit 8#define _NR_exit 11 9#define _NR_fo
28、rk 9#define _NR_fork 22 10#define _NR_read 10#define _NR_read 33 11#define _NR_write 11#define _NR_write 44 12#define _NR_open 12#define _NR_open 55 13#define _NR_close 13#define _NR_close 66 3 3系统调用表 系统调用表 系统调用表 系统调用表sys_call_table sys_call_table(arch/i386/kernel/entry.S arch/i386/kernel/entry.S)形式
29、如下:)形式如下:423 ENTRY(sys_call_table)423 ENTRY(sys_call_table)424.long SYMBOL_NAME(sys_ni_syscall)/*0-old 424.long SYMBOL_NAME(sys_ni_syscall)/*0-old setup()system call*/setup()system call*/425.long SYMBOL_NAME(sys_exit)425.long SYMBOL_NAME(sys_exit)426.long SYMBOL_NAME(sys_fork)426.long SYMBOL_NAME(sy
30、s_fork)427.long SYMBOL_NAME(sys_read)427.long SYMBOL_NAME(sys_read)428.long SYMBOL_NAME(sys_write)428.long SYMBOL_NAME(sys_write)429.long SYMBOL_NAME(sys_open)/*5*/429.long SYMBOL_NAME(sys_open)/*5*/430.long SYMBOL_NAME(sys_close)430.long SYMBOL_NAME(sys_close)431.long SYMBOL_NAME(sys_waitpid)431.long SYMBOL_NAME(sys_waitpid)432.long SYMBOL_NAME(sys_creat)432.long SYMBOL_NAME(sys_creat)谢谢大家!南京邮电大学*操作系统课程组