《UNIX系统课程教案 国防科大操作系统课件》由会员分享,可在线阅读,更多相关《UNIX系统课程教案 国防科大操作系统课件(31页珍藏版)》请在金锄头文库上搜索。
1、UNIX系统课程教案 UNIX:通用的分时操作系统(多用户、多任务);最著名的操作系统之一;操作系统标准POSIX的基础;当今流行的系统:Microsoft:DOS Windows Windows95 Windows/NT Windows CE Windows XPUNIX家族:UNIX SVR4 BSD UNIX SCO UNIX Solaris (SGI)IRIX AIXOSF/1(digital UNIX) Mach Linux freeBSD其它系统:(DEC)VAX/VMS OPEN VMS (IBM)OS/2 (CRAY)COS专用系统/嵌入式系统:PalmOS Vxworks p
2、SOS SymbianOS 学习内容: UNIX的实现原理 (对其Kernel进行功能级代码分析) 学生课外报告UNIX/Linux内核新功能分析第一章 系统概述 一、UNIX的产生1.1969年K.Thompson 首先研制 UNIX V1。作者1965年 参加了Multics系统的研制吸取了操作系统精髓,认识到了不足,“交互”成为发展的趋势为“Space Travel”游戏,在PDP-7用汇编语言开发UNIX(与Multics相对,Uni, Universal)2.1973年Thompson 和Ritche设计UNIX V5。Thompson不断完善系统,吸引了Ritche,将B改为C,并
3、重写了UNIX.合作在ACM通讯杂志上发表论文:The UNIX Time-Sharing System 设计背景: 设计者直接是用户,需求清楚经验丰富,并坚持一切从简原则设计风格具有很好的一致性3.1976年 发表了UNIX V6注册了版权(Licenses),成为了软件产品二、UNIX的主要特点1.设计思想独特短小精干OS仅支持基本的服务,是各类复杂服务的基础2.用C语言设计开放性好,易移植效率仅下降20403.用户界面简单、一致、高效 System Call接口函数少,文件、设备统一接 口可编程的Shell命令,支持管道,重定向. 三、UNIX的发展源代码公开,无偿提供给非赢利部门使用吸
4、引了大批开发者研究、发展UNIX.加州大学的Berkely学院成为重要的机构各厂商竟相移植、设计变形的版本.AT #映像(参数:程序名)5.进程老新映象间参数传递过程:copy f1.c l1.c 1). 由shell解释器从标准输入中获得copy,f1.c,l1.cp1copy;p2f1.c;p3l1.c2). shell解释器执行如下程序(注意:子进程复制了父 进程的进程映象)if(fork)=0) thenexecl(p1,p1,p2,p3,0);#p1,p2,p3将存于argvwait();即产生一个子进程去执行COPY程序。3). 处理execl()系统调用时,删除原进程映象,建立
5、copy进程映象。argc和argv参数存放于新初始化栈的第 1帧里(见P20)。4)新运行的copy主程序从栈帧中获得参数。 ( *主程序再调用子程序时也可通过栈帧传递变量。)6. 老新映象间还可以用环境变量传递参数 1).shell解释器执行set命令(或export命令),或进程 调setenv()函数设置环境变量,将环境变量放置到 进程的用户栈底。 2).产生子进程时,子进程因继承拷贝了父进程栈 帧,故自动继承环境变量。 3).当进程用exec改变进程映像时,可以通过把栈 帧中的环境变量数组作为exec的变量使给OS内核 ,由OS重新初始化进程映象的栈时,将环境变量 再置入新映像栈底,
6、使进程的新映像获得环境变 量。第二章 核心导言 2.1 Kernel的结构 (P16)User level 用户程序 程序库System Call Interface kernel level FILE Subsystem PROCESSSubsystem 高速缓存 通信 调度 存储 (交换, Device Driver 虚存)(字符)(块)Hardware Control /中断向量 Interruptions 时钟 设备 设备、文件统一界面 块设备设有高速数据缓冲 存储管理功能丰富(交换调度、页面调度) 通信功能强(信号灯、共享存储、消息通信)中断驱动的工作过程:应用程序中断 中 保存现场
7、 异常 断 转 移 Clock向量 进程调度 (上下文切换)恢复现场 Trap汇编代码 C语言(部分汇编)系统调用库程序(如write()一般格式:.(传给核心的参数含系统调用号按约定填入寄存器)trap.(从约定的寄存器中获得核心返回值)return注意:trap指令引起pc寄存器改为内核trap处理程 序地址进程有关的数据结构 逻辑结构主存空间磁盘 进程 可执行文件 虚地址空间文件头 段式Text段 正文区(段) 或 页式Data 段 数据区(段)Data 段Bss 段 用户栈区User结构U 区PROC 区的位置对应的文件本进程区表 区的状态Pregion 区的类型进程表(系统) 区 表
8、PROC数组 region区(region)是进程地址空间中逻辑连续的区域 ,如正文、数据、栈。 进程相关的表:Proc 结构:几十个Bytes,常驻内存,包含ID、 状态等信息U区: 及百个Bytes ,可交换。是进程的扩展信 息块,存有核心栈。Pregion结构:描述进程虚空间各区段的虚地址 范围并有指针指向对应的区表.Region结构:描述区的属性,对应的映像文件信息, 区的页表信息等。进程调度状态:(p23)用户态运行系统调用 返回或中断 中断、返回核心态运行睡眠 进程调度睡眠态 就绪态唤醒UNIX进程调度策略的特殊考虑:1.为减少Kernel的临界区竞争问题,规定核心态不允许被 剥夺运行,除非进程自身放弃运行.2.为适应分时运行,规定在核心态运行结束返回用户态时 ,安排进程调度.3.UNIX临界区竞争的解决方法:核心态禁止剥夺调度屏蔽高级中断占用共享资源睡眠时,实施加锁控制(P26)4.问题: 典型的内核单进程模型效率受影响、实时受影响。新的UNIX内核已不受上述限制,解决临界区的手段是”上 锁”.