第6章_进程管理与作业管理2
- 格式:ppt
- 大小:261.00 KB
- 文档页数:55
第一章Linux系统简介一、思考题1.UNIX的大部分代码是用一种流行的程序设计语言编写的,该语言是什么?C语言2.UNIX系统的特点有哪些?·多任务·多用户·并行处理能力·设备无关性·工具·错误处理·强大的网络功能·开放性3.什么是Linux?其创始人是谁?Linux是一个功能强大的操作系统,同时它也是一个自由软件,是免费的、源代码开放的、可以自由使用的UNIX兼容产品。
其创始人是Linus4.Linux操作系统的诞生、发展和成长过程始终依赖者的重要支柱都有哪些?·UNIX操作系统·MINIX操作系统·GNU计划·POSIX标准·Internet5.简述Linux系统的特点。
·自由软件·良好的兼容性·多用户、多任务·良好的界面·丰富的网络功能·可靠地安全性、稳定性·支持多种平台6.常见的Linux的发行版本有哪些?·Red Hat Linux·Caldera OpenLinux·SuSE Linux·TurboLinux·红旗Linux·中软Linux二、选择题1.Linux最初是以MINIX操作系统为模板而开发出来的。
2.关于Linux内核版本的说法,下列选项中错误的是(C)。
A.表示为主版本号.次版本号.修正号B.1.2.3表示稳定的发行版C.1.3.3表示稳定的发行版D.2.2.5表示对内核2.2的第5次修正(补充:次版本号为偶数的是稳定版本;为奇数的则是测试版本。
)3.Linux属于自由软件。
4.自由软件的含义是软件可以自由修改和发布。
5.一下不具有多任务性的操作系统是DOS第二章Linux系统入门一、思考题1.Linux系统有哪些运行级别?其含义是什么?可用级别为0~6,其中0:关闭系统;6:重新启动,其他略。
第一章操作系统概述课后习题1. 硬件将处理机划分为两种状态,即管态和目态,这样做给操作系统设计带来什么好处 ? 答:便于设计安全可靠的操作系统。
管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。
通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权指令。
如果用户程序企图在目态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。
2. 何为特权指令?举例说明之。
如果允许用户执行特权指令,会带来什么后果?答:只能在态下才能执行的指令称为特权指令。
如开关中断、置程序状态寄存器等。
如果允许用户执行特权指令,它将不仅影响当前运行的程序,而且还有可能影响操作系统的正常运行,甚至整个系统。
3. 中断向量在机器中的存储位置是由硬件确定的,还是由软件确定的 ? 答:中断向量在机器中的位置是由硬件确定的。
例如,在 INTEL 80x86 CPU 中,内存空间0x00000——0x003ff为中断向量空间。
4. 中断向量的内容是由操作系统程序确定的还是由用户程序确定的?答:中断向量的内容是由操作系统程序确定的。
向量的内容包括中断处理程序的入口地址和程序状态字(中断处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该中断处理程序的运行环境来填写中断向量。
5. 中断向量内的处理机状态位应当标明是管态还是目态 ? 为什么? 答:应当标明是管态。
该状态由系统初试化程序设置,这样才能保证中断发生后进入操作系统规定的中断处理程序。
6. 中断和程序并发之间的关系是什么?答:中断是程序并发的必要条件。
如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。
7. 说明“栈”和“堆”的差别.答:栈是一块按后进先出(FIFO)规则访问的存储区域,用来实现中断嵌套和子程序调用的参数和返回断点。
进程和作业管理进程(Process)•进程:指的是一个加载到内存中执行的程序•每个进程有自己相应的上下文(数据和执行)查看当前shell PID:echo $$•进程不是程序或者应用•我们可以多次执行某个程序•程序的每次执行对应一个进程•每个进程有自己的地址空间和上下文•每个进程从自己的角度看似乎完全拥有整个系统,通过操作系统的调度来保证这一点•内核负责管理进程•每个进程分配一个唯一的ID,称为PID(进程ID)•内核维护一个进程表,纪录了进程的状态信息•一个Linux系统同时有多个进程执行,有的是用户启动的,有的是系统启动的•调度器选择正在执行的多个进程中的其中一个或者多个(多处理器系统),让其运行一段短的时刻(10毫秒CPU时间)。
进程上下文•PC:Program Counter•要执行的下一个指令的地址•Stack: 临时数据•维护函数调用的状态,包括函数参数、返回地址、本地变量•Heap:动态分配的内存空间•对象,字符串等•Static Data: 全局变量•Code:执行的程序代码进程(Process)•进程如何启动?•由一个父进程来启动一个子进程,从而形成一个进程树•进程树的根为init或者systemd进程(pid=1),由操作系统引导时创建•一个进程调用fork来创建一个当前进程的克隆进程,称为子进程•子进程调用exec来停止执行父进程的代码,转为执行相应的程序•父进程应该调用wait来等待子进程结束•子进程在执行完毕后调用exit来结束自己(子进程)•子进程结束时使用的资源被释放,称为ZOMBIE进程•内核发现子进程结束时唤醒父进程,父进程可以查看子进程返回的结果。
内核此时将僵尸进程移走查看当前shell PID:echo $$使用ps命令查看各个进程的pid等信息forkwaitexec cmd exit父进程(比如shell )子进程孤儿进程(Orphan)•父进程有可能异常退出,或者不主动调用wait:•子进程运行过程中,父进程异常退出,当子进程结束时成为孤儿僵尸进程(即父进程不存在了)•如果父进程没有调用wait来等待子进程结束,则子进程结束后成为遗弃(abandoned)僵尸进程•用户可以通过kill来杀死父进程,使得其子进程在退出时变为孤儿僵尸进程•内核进程init(PID=1)会定期领养孤儿僵尸进程,将其从进程表中移走进程组、会话和控制终端•每个进程还属于且只属于一个进程组,进程组的ID为该进程组组长的PID •引入进程组的目的是方便给进程组的多个进程发送信号•一个会话是一个或者多个进程组的集合,用户登录时开启一个会话,退出时结束会话•开启会话的第一个进程会连接一个控制终端,从控制终端接收输入,给进程发送信号,输出到该控制终端等•前台进程为由控制终端控制的进程,可以接收终端的输入•后台进程为独立于控制终端的进程,它无法接收终端的输入,其与控制终端的输入连接断开(定向到/dev/null),但是其可以输出到控制终端•显然一个会话只能有一个前台进程,但是可以有多个后台进程•通过控制终端开启的进程缺省为前台进程(除非程序代码自己改变为守护进程),可以通过在命令参数最后加上一个&,将启动的进程变为后台进程显示进程树pstree•进程树的根为init或者systemd进程(pid=1) pstree [options] [ PID | USER ]查看进程ID为PID开始的进程树,如果不传递参数,缺省为1(即整个进程树)。
CentOS 丛书目录 —系统管理 —网络服务 —应用部署进程管理和作业控制内容提要1.掌握进程的相关概念2.熟悉Linux中进程的类型和启动方式3.学会查看和杀死进程4.理解何谓作业控制5.掌握实施作业控制的常用命令进程概述进程的概念进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。
之所以要创建进程,就是为了使多个程序可以并发的执行,从而提高系统的资源利用率和吞吐量。
进程和程序的概念不同,下面是对这两个概念的比较程序只是一个静态的指令集合;而进程是一个程序的动态执行过程,它具有生命期,是动态的产生和消亡的。
进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源、不能被系统调度、也不能作为独立运行的单位,因此,它不占用系统的运行资源。
程序和进程无一一对应的关系。
一方面一个程序可以由多个进程所共用,即一个程序在运行过程中可以产生多个进程;另一方面,一个进程在生命期内可以顺序的执行若干个程序。
Linux操作系统是多任务的,如果一个应用程序需要几个进程并发地协调运行来完成相关工作,系统会安排这些进程并发运行,同时完成对这些进程的调度和管理任务,包括CPU、内存、存储器等系统资源的分配。
Linux中的进程在Linux系统中总是有很多进程同时在运行,每一个进程都有一个识别号,叫做PID(Process ID),用以区分不同的进程。
系统启动后的第一个进程是init,它的PID是1。
init是唯一一个由系统内核直接运行的进程。
新的进程可以用系统调用fork来产生,就是从一个已经存在的旧进程中分出一个新进程来,旧的进程是新产生的进程的父进程,新进程是产生它的进程的子进程,除了init之外,每一个进程都有父进程。
当系统启动以后,init进程会创建login进程等待用户登录系统,login进程是init进程的子进程。
当用户登录系统后,login进程就会为用户启动shell进程,shell进程就是login进程的子进程,而此后用户运行的进程都是由shell衍生出来的。
进程与任务或作业管理进程与任务或作业管理是计算机系统中的重要概念,它涉及到操作系统中的进程管理和任务(或作业)管理,对于实现多任务并发执行和资源分配具有重要意义。
本文将介绍进程管理和任务(或作业)管理的概念、目的和常用的管理方法。
进程管理进程是指一个程序在执行过程中产生的实体,是计算机系统中的基本执行单位。
进程管理是指操作系统对进程进行创建、运行、暂停、终止和切换等操作的管理。
它的主要目的是为了实现多任务并发执行和资源的合理分配。
进程创建与终止进程的创建是通过操作系统的调度算法来完成的。
当用户运行一个程序时,操作系统会为该程序分配一块内存空间,建立相应的数据结构,并将程序加载到内存中执行,从而创建了一个进程。
进程的终止是指进程执行完毕或出现错误导致无法继续执行时的操作。
操作系统会回收进程所占用的资源,并释放相关的数据结构。
进程运行与切换进程运行时,操作系统通过调度算法来决定哪个进程可以占用处理器,并为其分配CPU时间片。
当一个进程的时间片用完或者发生阻塞时,操作系统会进行进程切换,即将当前进程的状态保存起来,恢复下一个进程的状态,并将处理器的控制权交给它。
进程间通信进程间通信(Inter-Process Communication,简称IPC)是指进程之间进行信息交换和数据共享的机制。
常见的进程间通信方式有管道、消息队列、共享内存和信号量等。
通过进程间通信,可以实现不同进程之间的协作与数据交换。
任务(或作业)管理任务(或作业)管理是指操作系统对多个任务(或作业)进行管理和调度的过程,以便合理利用系统资源,提高系统的运行效率。
任务(或作业)的提交与调度任务(或作业)的提交是指用户将需要运行的任务(或作业)提交给操作系统进行处理。
操作系统会按照不同的调度算法来决定任务(或作业)的执行顺序。
常见的调度算法有先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转(RR)等。
任务(或作业)的并发执行为了充分利用系统资源和提高系统的运行效率,操作系统通常会同时执行多个任务(或作业)。