资源预览内容
第1页 / 共184页
第2页 / 共184页
第3页 / 共184页
第4页 / 共184页
第5页 / 共184页
第6页 / 共184页
第7页 / 共184页
第8页 / 共184页
第9页 / 共184页
第10页 / 共184页
亲,该文档总共184页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
操作系统结构分析及应用编程,电子科技大学 计算机学院/软件学院 刘 玓 liudiuestc.edu.cn,课 程 概 述一课程内容简介1、讲授范围具体的技术系统及其算法和实现流程,而不是操作系统基本原理;2、通用操作系统的现状和分类DOS类 - 结构简单、使用方便、效率低、安全性低UNIX类 - 运行高效、结构通用、安全可靠、适应能力强、系统较复杂MVS类 - 功能强大、处理能力巨大、系统复杂、较封闭,大巨型机 + z/OS,小中型机 + UNIX,微型机 + Windows,功能强大,简单易用,3、根本特点分时多用户、开放性分时多用户:多个用户多个进程同时在一个系统中运行系统资源高度共享、有效协调开放性:标准化 结构上的一致性可移植性 应用软件的编码及系统应用接口可互操作性 可保持用户原来的使用习惯异种机之间的互操作4、教学难点多用户多进程同步/互斥、数据一致性、访问安全性开放性硬件依赖性、结构伸缩性、广泛适应性,二、教学目的1、了解主流操作系统的发展方向低端操作系统 VS 高端操作系统2、掌握UNIX类操作系统的内部结构和主要算法文件、文件系统、进程、时钟、输入输出3、学习大型程序设计的方法和理念系统结构、功能流程、数据安全、思维模式4、奠定系统开发和应用开发的基础功能选择、层次划分、应用系统模式的确定,三、教材UNIX操作系统设计(The Design of the UNIX Operating System)(美)Maurice J.Bach 著陈葆珏 王旭 柳纯录 冯雪山 译机械工业出版社 2005年10月出版,第一章 系统概貌,1.1 发展状况 1、发展历史及版本v.0 1970年Ken Thompson 和 Dennis Ritchie PDP-7 汇编语言UNICSv.1 1971年PDP-11 汇编语言UNIX v.2 1972年 增加管道功能,v.5 1973年Dennis Ritchie B language - C language 重写UNIX 第一个高级语言OSv.6 1975年对外发表UNIX大学和科研单位应用v.7 1978年第一个商业版本我国开始深入研究应用的最早版本System III 1981年完全转向为社会提供的商品软件,System V1983年 系统功能稳定完善公布号: 1.0、2.0、2.3、3.5、4.0、4.2、4.3 现在最后版本为 System V Release 4 (SVR4),2、主要分支和兼容版本BSD 加州大学伯克利分校 XENIX/OpenServerMicrosoft、SCO公司 HP-UX HP公司 AIX IBM Solaris SUN公司 IRIX SGI公司 Ultrix DEC公司 Linux 开放源代码,3、基本功能特征 交互式分时多用户 人机间实时交互数据 多个用户可同时使用一台机器 每个用户可同时执行多个任务 软件复用 每个程序模块完成单一的功能 程序模块可按需任意组合 较高的系统和应用开发效率 可移植性强 数千行汇编码, 数十万行C语言代码,配置灵活, 适应性强 小内核, 参数灵活可调 核外应用系统, 任意裁减 限制规则很少 界面方便高效 内部: 系统调用丰富高效 外部: shell命令灵活方便可编程 应用: GUI 清晰直观功能强大 安全机制完善 口令、权限、加密等措施完善 抗病毒结构 误操作的局限和自动恢复功能,多国语言支持 支持全世界现有的几十种主要语言 网络和资源共享 内部: 多进程结构易于资源共享 外部: 支持多种网络协议说明: 1、其它操作系统可能包含部分上述UNIX的特征,但非全部(如NT就有部分多用户系统特征) 2、这些特征有些是核心直接实现的,有些是由核心提供实现这种特征的方便性和可能性,而由使用者来实现的。,1.2 系统结构,硬件,内核,kernel,sh,who,date,wc,vi,grep,date,a.out,ls,app_1,app_2,app_n,UNIX操作系统的整体结构,系统调用(system call)以函数形式提供给核外的命令和上层应用系统使用的一组程序,涵盖操作系统的所有功能。是应用程序请求操作系统服务的唯一通道。内核(kernel)系统调用的集合及实现系统调用的内部算法就形成操作系统核心,1.3 用户看法进程和文件是UNIX操作系统中最基本的两个概念(抽象)进程:所有处在运行期间的程序实例都是进程一个进程就是处在运行期间的一个程序实例涵盖所有的动态概念文件:所有静态的无形数据和有形硬件设备源程序、命令、图片、邮件、 打印机、内存、磁盘等,1.3.1 文件系统 /bin usr etc home tmp dev who ls bin lib rc ttys st teach tty0 hd02admin hwconf liu wang chenaa dir2 saveUNIX文件系统树示例,UNIX文件系统的特征: 1、树状层次结构树根、树枝、树叶、路径 2、对文件数据的一致对待文件为有序无格式的字节流,逻辑意义由使用者解释 3、文件管理建立、删除、修改、备份、移动、替换存储空间的分配和释放 4、文件的访问和保护索引节点(inode)、文件描述符(fd)用户分组、权限划分 5、设备文件管理统一各外部设备的访问模式,char buffer2048; main(int argc, char *argv) int fdold, fdnew;if(argc != 3)printf(“need 2 arguments for copy programn”);exit(1);fdold = open(argv1, O_RDONLY);if (fdold = -1)printf(“cannot open file %sn”, argv1);exit(1);fdnew = creat(argv2, 0666);if(fdnew = -1)printf(“cannot create file %sn”, argv2);exit(1);copy(fdold, fdnew);exit(0); copy(int old, int new) int count;while(count = read(old, buffer, sizeof(buffer) 0)write(new, buffer, count); ,1.3.2 处理环境程序:可执行的文件 文件头包括: 文件的幻数(magic number) 编译器的版本号 机器类型 数据段、正文段、工作变量的段大小 程序入口点,文件头,正文段,数据段,工作变量段 BSS (符号表、重定位信息等),进程:程序的一次执行实例一个程序可同时有多个实例;系统中可同时有多个进程 父进程:调用系统调用fork的进程 子进程:由系统调用fork产生的新进程 执行程序:调用execl, 用被执行程序的内容覆盖本进程地址空间,abc,执行abc,xyz,用xyz覆盖abc,执行xyz,xyz,例子: 执行可运行文件copy,其功能是拷贝文件,其运行格式为:copy oldfile newfile另一个名为cpfile的程序具体调用copy,其源程序如下:main(int argc, char *argv )if (fork() = 0)execl(“copy”, “copy”, argv1, argv2, 0);wait(int *)0);printf(“copy donen”);,在用户环境下,程序的执行通常由命令解释器shell来完成,标准的命令格式为:cmd -options argumentsshell可识别的命令类型有:1、简单命令cat file12、多条命令who; date; ps3、复合命令ps e | grep student2(ls ; cat file3 ; pwd) run_log4、后台命令ls lR /home/teacher tlist &,1.3.3 构件原语“软件复用”和“模块组装”理念程序内部:简单功能划分;纯代码设计程序外部:使用构件原语进行功能重叠和组装 UNIX包含两种构件原语: 输入输出重定向 管道,I/O重定向(I/O redirect):一个进程通常(default)打开三个文件:标准输入文件(fd=0)标准输出文件(fd=1)标准错误输出文件(fd=2)例如:grep abc grep abc file2grep abc file2 2 file3,管道(pipe):A进程将标准输出重新定向到管道中去;B进程将标准输入重新定向从管道中来。例如:ps -e | grep student3 | wc -l查看当前系统中与用户student3相关的进程有多少,A进程的输出,B进程的输入,1.4 操作系统服务 UNIX操作系统提供五种主要的服务(也是UNIX核心的五个重要组成部分):1进程管理建立、终止、挂起、通信等2时钟管理分时共享cpu,时间片,调度3存储管理二级存贮器(内存和对换区),分配主存4文件系统管理二级存贮结构。分配和收回存贮区和索引节点5设备管理对I/O设备进行有控制的存取(多进程系统的特征),内核提供的服务的特点:服务是透明的文件类型透明:用户可不关心是普通文件还是外部设备,但O.S自己要关心文件类型!文件系统的透明:文件系统类型、存放的物理位置。存贮方式透明:文件的存放位置、存放方式、存放格式各用户进程能得到核心相同服务:无论系统程序还是用户程序,平等对待,分时运行,1.5 硬件假设(假设机器硬件只支持的运行状态)UNIX系统上进程的执行分成两种状态:用户态、 核心态用户态:进程正在执行用户代码时的状态核心态:进程正在执行系统代码(系统调用)时的状态 用户态和核心态的区别:用户态:进程只能存取自己的地址空间 核心态:进程可存取核心和用户地址空间 用户态:不能存取特权指令,只能存取自己的指令和数据 核心态:除了能存取自己的指令和数据外,还可存取特权指令,一个进程在运行时必须处在,而且只能处在或者核心态或者用户态下:核心态的进程不是与用户进程平行运行的孤立的进程集合,而是每个用户进程的一部分。 “核心分配资源”:一个在核心状态下执行的进程分配资源。 一个进程某时在“用户态”下运行,另一时刻又在“核心态”下运行,在其生命周期内可能在这两种状态间切换多次,用户态,核心态,0 1 2 3 4 5 time,A | B | C | D | A |,核心处在核心态下的进程的相应部分的集合硬件是按核心态和用户态来执行操作的,但对这两种状态下正在执行程序的多个用户是相同对待的。,read,write,open,A 进程 B 进程 C 进程,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号