




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,1.5 Linux操作系统概述,1.5.1 Linux的起源的历史,Linux是Internet的产物,Linus利用MINIX开发了两个进程用以写/读数据,并以此为契机添加硬盘驱动程序、小型文件系统以至形成了Linux的雏型 Linus将这个雏型放在校园网上征求大家的意见。Linux从一开始就是一个以编程爱好为主的系统。,最初是由芬兰的赫尔辛基大学的计算机系二年级学生Linus Torvalds编写的,他还在读大二时,因不满学校服务器一次只能接待16人上网,于是自己开始在MINIX的平台上开发程序,MINIX是杰出的计算机科学教育学家安德鲁S坦尼鲍姆(Andrews Tanenbaum)自行设计的微型UNIX,是专门用于教学、科研的操作系统,其出发点在于: 1. 核心程序的开发; 2.对用户系统支持。,这就为那些对操作系统怀有强烈认识、了解欲望的人们提供了一个学习的机会。,2,在Linus的主持开发下,一个由广大爱好操作系统的网民们共同扶持的新型操作系统问世了,这就是闻名于世的Linux操作系统。,1.5.2 Linux的特点,几乎所有在其它UNIX操作系统的实现上所能找到的功能。,还包括一些UNIX系统的 其他实现版本上没有的功能。,3,Linux可以支持各种类型的文件系统。,多任务、多用户的32位操作系统。,Linux支持UNIX的全部功能,而价格比UNIX系统更为便宜。,Linux提供了TCP/IP 网络协议的完备实现,同时也支持完备的TCP/IP客户与服务器功能。,支持广泛的硬件。,丰富的软件支持。,强大的网络通信功能。,独特的内核机制。,比较linux系统与windows系统的特点,26,4,Linux系统的体系结构如图1-4所示,5,1.5.3 Linux的基本结构,1. Linux系统的体系结构,(1) 用户应用程序,(2) 操作系统服务,(3) 系统调用接口,(4) Linux内核,(5) 硬件平台,2、当一个用户程序在Linux系统之上运行时,它成为一个用户进程。,1、用户应用程序是运行在Linux系统最高层的一个庞大的软件集合。,3、该层对应不同的应用程序,如字处理程序、网络浏览器等。,6,1、通常被看作操作系统的一个部分,如视窗系统、Shell等。,2、还包括同内核的程序接口,如编译工具和库等。,(1) 用户应用程序,(2) 操作系统服务,(3) 系统调用接口,(4) Linux内核,(5) 硬件平台,1.5.3 Linux的基本结构,1. Linux系统的体系结构,7,(1) 用户应用程序,(2) 操作系统服务,(3) 系统调用接口,(4) Linux内核,(5) 硬件平台,1.5.3 Linux的基本结构,1. Linux系统的体系结构,在应用程序中,可通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务。,例如,在程序中安排一条创建进程的系统调用,则操作系统内核便会为之创建一个新进程。,8,(1) 用户应用程序,(2) 操作系统服务,(3) 系统调用接口,(4) Linux内核,(5) 硬件平台,1.5.3 Linux的基本结构,1. Linux系统的体系结构,内核实际是抽象的资源操作到具体硬件操作细节之间的接口。,这是本课程要介绍的重点。 内核是操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等。,9,(1) 用户应用程序,(2) 操作系统服务,(3) 系统调用接口,(4) Linux内核,(5) 硬件平台,1.5.3 Linux的基本结构,1. Linux系统的体系结构,这一层包括了Linux安装时需要的所有可能的物理设备。,1、CPU 2、内存 3、硬盘 4、网络硬件,2.4 Linux的用户接口,Linux 与 windows的区别,shell既是命令行解释程序,也是强大的编程语言,为用户提供编程工具,X-Window是建立在客户-服务器模型基础上的,基于网络协议的一个窗口管理系统,11,2.4.1 Linux的外壳shell,shell的中文含义是“壳” 在Linux的任意版本中都沿用了UNIX的Shell“外壳” 而不同版本的Linux或UNIX都有不同的shell 也即shell有多种:sh,bash,tesh,csh s Sh-Bourne shell -在众多的shell中,最早出现, 也是最早UNIX shell Linux事实上是采用了Bourne shell的一个变种,也叫Bash shell作为默认的shell。以“%”做提示符 C shell -是美国加利福尼亚大学的Bill Joy开发的,他考虑到用户界面的友好性。以“$”做提示符,12,C shell的编程接口不如Bourne shell,但却支持Bourne shell 不支持的许多命令 Linux提供的Tesh是C shell的一个扩展版本。 shell从功能上- 是一个命令语言解释器,拥有自己内建的shell命令集。 shell -还能被Linux系统中其它有效的实用程序和应用程序所调用。 shell - 在成功的登录进入系统并启动后,将始终作为与系统内核的交互手段 一直到退出系统,系统上的每位用户都拥有一个缺省的shell,路径为/etc/passwd的文件被指定,13,shell执行命令解释程序的过程是这样的:,14,除了shell界面以外,Linux还配有图形窗口界面,这就是Xwindow系统。 X window系统本身就是一个客户机服务系统,服务器显示运行在客户机的程序中。 服务程序与客户程序之间借助X通信协议进行通信。 X window系统最基本的部分(也称为 SEVER)只提供最基本的窗口功能 如建立窗口、在窗口中写入文字或画图形、控制键盘和鼠标的输入和取消窗口等 即它不提供用户界面,而只提供建立界面的基本结构 其余的大部分关于窗口的操作由窗口管理器来处理 窗口管理器是和核心相分离的一个特殊的客户程序 可以改变包括缩放、移动、关闭窗口的方法以及启动程序的方法,2.4.2 X windowLinux的图形窗口界面,15,X Window和MS Windows不同之处 鼠标操作不同 界面和窗口形状不同 而最大 区别在于: X Window 具有灵活的界面 各个界面之间是完全不同的 这主要归功于它的窗口管理器 这可是MS Windows中所没有的。 X Window可以通过窗口管理器:生成多个界面 MS Windows中只有一套界面操作方式 X Window的各个界面之间是完全不同的 MS Windows通过定制工具改变界面,界面差异很细微,16,X Window 和 MS Windows相似的地方: 两者都使用图形界面; 都主要通过鼠标操作来配合键盘完成任务; 都可以处理多个窗口; 都可以建立窗体、菜单和对话框等。,17,Linux是一个多任务的开放系统,进程就是许多分离的任务(Task)。每一个进程都有一定功能和权限,运行自己的虚拟地址空间的程序。它们彼此独立,并通过进程间的通信机制实现进程之间的同步与互斥。Linux通过进程调度程序在多个进程之间实现合理的调度。在Linux系统中,进程与任务是相同的概念。 Linux中,进程被定义为进程映象(Process Image)的执行。这里的进程映象即为进程的实体部分,它由正文段(Text)、用户数据段(User Segment)以及系统数据段(System Segment)组成,从而形成了进程的一个执行环境。,3.9 Linux的进程管理,1. Linux的进程和进程组成,3.9.1 Linux的进程,18,在Intel386体系结构中,Linux利用其保护模式、特权级等特征,把每个进程分为内核态(特权级0)和用户态(特权级3)两种级别。中断和系统调用是内核态向用户态提供服务的重要途径。,图3.33 Linux进程的组成,程序是由一组指令和数据组成的静态的概念,而进程则是由正文段、用户数据段和系统数据段组织在一起的动态实体。Linux的进程组成如图3.33所示。,19,2. Linux的进程调度,Linux内核的进程调度程序按照一定的策略来选择最应该在CPU上运行的进程,并通过不断地保存和恢复进程的运行环境,使得进程能得以占有CPU,运行完毕。通常,由于系统中只有一个CPU,当然也可以有多个CPU(Linux支持SMP对称多处理机),而系统中进程的数量远远多于CPU的数量,为了提高CPU的利用率,Linux采用了一系列的调度策略来保证公平和高效。,Linux的进程调度分为实时进程调度和普通进程调度两种。 Linux的进程调度操作由schedule()函数完成。这是一个只在内核态运行的函数,函数代码为所有进程共享。任何进程,当它从系统调用返回时,都会转入schedule(),重新进行调度,或者,当中断产生时,大多数的中断服务程序在完成各自的中断处理后,也会转入schedule()。,20,3. Linux进程的生命周期,Linux中,当用户打入shell命令,要求执行一个命令文件,要求执行一个命令文件或运行各种应用程序时,操作系统就为每个程序建立一个运行环境,从而形成进程的动态实体,此即创建了进程。当进程调度程序选中了该进程后,为其恢复现场,进程就在CPU上开始了运行。,随着程序中指令的执行,进程实体也在动态地变化,例如寄存器的值、用以保存各种临时数据(传递给函数的参数、函数调用的返回地址、函数中的变量等)的堆栈、打开文件的数量等等。进程在运行中也可以放弃原有的正文段,而连入新的正文段,也可以扩大或缩小自己用户数据段的长度。进程执行环境的动态变化充分表明进程是动态的执行活动。,21,*3-9-2 Linux的进程控制块,进程运行完自己的正文段后,就进入消亡状态。此时,进程将释放所占用的系统资源,唤醒其父进程为其善后处理,从而结束了进程的生命周期。,进程在运行中,还需申请其他的系统资源。为了运行它的指令,要得到CPU、要申请物理内存来存放进程的实体、通过文件系统来打开、读写和关闭文件、还要申请使用各种系统的外部设备。进程的资源请求均由Linux的各种资源管理子系统来实现。这些资源管理子系统通过各种资源的管理策略,满足进程对资源的共享,提高资源的使用效率。,进程控制块(PCB)是进程抽象化的数据表示。操作系统根据PCB而感知一个进程的存在并对进程进行控制和管理。Linux中,每一个进程都由一个task_struct数据结构来描述,此即为进程的PCB,其中记录了进程的所有的控制和管理信息。,22,1. 进程的标识信息(Process Identifiers) 2. 进程的调度状态信息(state) 3. 进程的调度信息(scheduling) 4. 进程的家族信息及链接信息 5. 时间和定时器信息(Times and Timers) 6. 进程通信信息(IPC,Inter-Process Communication) 7. 文件系统信息(File System) 8. 虚拟内存信息(Virtual Memory) 9. 页面管理信息(Page Management) 10. 对称多处理器(SMP)信息 11. 其他信息,进程控制块的信息包括:,task_struct结构是Linux系统对进程进行控制的唯一最有效的手段。,23,在进程的生命周期内,进程所处的状态经常在变化着。通过这些状态的变化刻划了进程从创建,活动到消亡的过程。,3.9.3 Linux的进程状态,Linux的进程状态转换如图3.34所示。,1. Linux的进程状态,在每个进程的task_struct结构中,Linux定义了state域来描述进程的调度状态。Linux的进程共有五种调度状态。,2. Linux进程状态的转换,3.9.4 Linux的进程调度,Linux是一种典型的分时操作系统,主要采用了基于优先权的时间片轮转法为进程分配CPU。按照这种调度方法,系统给每个运行进程分配一个时间片,而优先权的大小又决定了哪个进程被调度运行。因此,时间片和优先权这两个参数对Linux的进程调度起着非常重要的作用。,24,进程的优先权是进程调度的重要依据,Linux通过进程的权重weight,由函数goodness()来完成这一工作。该函数中,首先根据进程task_struct结构中的policy来区分是实时进程还是普通进程。对这两类进程,分别采用不同的标准来确定其权重。,2. 进程优先权的确定,1.进程调度的有关参数,但是,Linux的进程调度并不局限于某一种调度策略,它融合了基于优先权的轮法调度、基于优先权的先进先出调度以及多级反馈轮转调度的策略,因而具有很高的综合性。,对于普通进程,采用动态的优先权的方法来确定其权重。 对于实时进程,counter只是用来表示该进程的剩余时间片,并不代表权重,其权重决定于rt_priority。,25,为了进行调度,Linux将所有的可运行态的进程都排入一个可运行队列中。该队列通过task_struct结构中的两个指针next_task和prev_task来链接。如图3.35所示。,3. Linux进程的可运行队列,4. Linux的进程调度,Linux在一个可运行队列中,对先进先出的实时进程、轮转调度方式的实时进程及普通进程分别实现了不同的调度。进程调度程序在可运行队列中逐个比较各个可运行进程的权重,从中选出一个权重最大的进程来分配CPU。如果进程的权重相同,在可运行队列中位置越靠前者越优先。,26,1. 当进程状态转换时。 2. 当前进程的时间片用完时(cuprentcounter=0),要重新选择一个进程。 3. 当设备驱动程序执行长而重复的任务时,直接调用schedule()。 4. 进程从中断、异常及系统调用处理后返回到用户态时。,5. Linux进程调度的时机,Linux系统中,引起进程调度的时机有:,3.9.5 Linux的进程控制,Linux是一个多进程的操作系统,其中绝大多数进程都有一定的生命周期。进程由于创建而“诞生”,由于终止而“消亡”,它是一个动态的过程。,27,系统启动时,运行在内核模式,此时,只有一个进程在系统中运行,即初始化进程。系统初始化结束时,初始化进程启动一个内核线程(即init),然后自己则保持在空循环(idle)状态。当系统中没有可运行的进程时,进程调度程序将运行这一idle进程。Idle进程是唯一非动态分配task_struct结构的进程,它的task_struct结构在内核编译时分配,称为init_task。 图3.36,给出了进程从创建到终止的全过程。,1. 进程的建立过程,28,Shell进程建立的环境,键入Shell命令,fork() (创建子进程),Execve() (执行新的文件),wait() (等待子进程终止),exit() (自我终止),(父进程继续运行),非0,返回子进程标识,返回0,子进程,父进程,图3.36 进程从创建到终止的全过程,29,Li
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东济南轨道交通酒店管理有限公司招聘13人笔试参考题库附带答案详解
- 黔西南民族职业技术学院《生态规划与管理》2023-2024学年第二学期期末试卷
- 周口理工职业学院《成衣基础工艺》2023-2024学年第二学期期末试卷
- 酒泉职业技术学院《热工基础》2023-2024学年第二学期期末试卷
- 安康职业技术学院《服务器维护管理》2023-2024学年第二学期期末试卷
- 东南大学成贤学院《风险投资理论与实务》2023-2024学年第二学期期末试卷
- 衡水健康科技职业学院《花卉学实验》2023-2024学年第二学期期末试卷
- 皖西卫生职业学院《化学设计性实验》2023-2024学年第二学期期末试卷
- 西南财经大学《医药数理统计学》2023-2024学年第二学期期末试卷
- 阿克苏职业技术学院《建筑设计(一)》2023-2024学年第二学期期末试卷
- 药物化学(广东药科大学)智慧树知到期末考试答案2024年
- HG-T 4823-2023 电池用硫酸锰
- 四巧板制作与拼接活动
- 射频人体轮廓仪行业发展现状及潜力分析研究报告
- 2023-2024全国初中物理竞赛试题第09讲杠杆(解析版)
- 小学三年级数学数据的收集和整理
- 深圳 退休 返聘 合同
- 成立物流协会可行性方案
- 山东师范大学《文献学专题》期末考试复习题及参考答案
- 苗木采购投标方案(技术方案)(技术方案)
- 《应用统计学》复习题库(含答案)
评论
0/150
提交评论