Linux进程管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

安徽大学Linux进程管理基本介绍专业:集成电路年级:2016级姓名:项雅琴目录一、Linux系统的特性......................................21.1Linux系统优点.....................................21.2Linux系统的结构体系..............................2二、进程及作业...........................................3三、关于进程的简介......................................33.1进程基本原理......................................43.2启动进程..........................................5结论...................................................71摘要随着以计算机技术、通讯技术、消费电子技术为主的产业的快速发展,实时操作系统得到越来越广泛的应用在包括科学研究、工程设计、军事技术、商业娱乐及人们日常生活的各个领域中,对实时操作操作系统的需求越来越大。近年来,Linux以自由、免费、开放源代码为武器,经过来自互联网、遍布全球的程序员的努力,加上IBM、SUN等计算机巨头的支持,Linux在操作系统市场异军突起,服务器版的Linux、桌面版的Linux、嵌入式Linux已经广泛地投入应用,基于Linux的应用和应用开发渗透到各个领域,一部分手机厂商接机推出了Linux手机。目前很多手机开发商本身并不希望在操作系统方案上受制于人并增加产品开发成本,而源代码开放的Linux是最好的切入点。由于很多公司在Linux桌面应用开发的经验而促成其转向。Linux是一个多任务的操作系统,系统上同时适行着多个进程,正在执行的一个或多个相关进程称为一个作业,使用作业控制,用户可以同时运行多个作业,并在需要时在作业之间进行切换。关键词:Linux、进程、作业、状态2一、Linux系统的特性1.1Linux系统优点功能强大。支持多任务的进程调度提供完全的内存保护机制和多种进程间的通信和同步机制,例如共享内存、消息队列、管道、信号、信号量和互斥锁等支持包括多种网络协议的网络支持功能支持包括网络文件系统的多种文件系统启动和初始化进程控制得非常好,可以很容易地定制系统启动的服务和服务启动的顺序。例如,将裁减为一个适合某类特定应用的嵌入式系统就是比较容易的。开放源码。所有源代码开放,这不仅使得我们可以很好地理解它,使用它,更重要的是,如果需要,还可以改动它,以满足具体应用的需求。支持多种硬件平台。已经被移植支持多种构架,驱动程序也很丰富。一旦有新的硬件出现,开放源码团体或硬件厂商会很快提供驱动支持模块化设计模块化的设计方案使得它很容易被裁减成小到可以支持一些资源有限的嵌入式设计。红旗公司就成功地将运行在彩票机上,目前该系统已在全国各点铺展开。函数接口符合国际和工业标准。由于其开放性以及使用了标准接口函数,许多其他开发源码团体为提供了大量的开发工具和实用软件。例如窗口系统、高级网络协议、视频音频库、多种编程和脚本语言等。所有这些使得实时系统的开发者可以很快地得到他们所需要的软件,并将精力集中在他们的核心工作中。1.2Linux系统的结构体系我们将操作系统分为4层,分别是用户进程、系统调用接口、内核、硬件控制器。下面分别简单介绍下这四个组成部分:1.用户进程:用户应用程序是运行在操作系统最高层的一个庞大的软件及核。当一个用户程序在操作系统之上运行时,它就是操作系统的一个进程。计算机不同,程序的集合大小会有所变化。2.系统调用接口为了在应用程序中实现特定的任务,可以通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务。一般认为,这些调用和服务是操作系统的一部分,内核编程接口也属于这一部分。系统调用本身也是由若干条指令组成的,但与一般过程不同的是系统调用运行在内核模式,而一般的进程运行在用户模式。3.Linux内核:内核是操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动系统并运行程序,负责从网络上接收和发送数据包等等。34.硬件控制器:这个子系统包括了Linux安装时需要的所有可能的物理设备。二、进程及作业Linux是一个多用户、多任务的操作系统。在这样的系统中,各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理。在现实生活中,许多网络黑客都是通过种植“木马”的办法来达到破坏计算机系统和入侵的目的。另外,许多破坏程序和攻击手段都需要通过破坏目标计算机系统的合法进程尤其是重要系统进程的办法,使得系统不能完成正常的工作甚至无法工作,从而达到摧毁目标计算机系统的目的。Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,系统只被您独自占用。而实质上操作系统监控着公个等待执行的任务队列,这些任务包括用户作业、操作系统任务、邮件和打印作业等。操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片大约都有零点几秒,虽然看起来很短,但实际上己经足够计算机完成成千上万的指令集。每个任务都会被系统运行一段时间,然后挂起,系统转而处理其他任务,过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队列中除去。Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们讨论进程的时候,不会去关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生,但是程序只是一个静态的指令集合,不占系统的运行资源,而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序,而且一个程序可以启动多个进程。三、关于进程的简介43.1进程基本原理Linux操作系统包括如下三种不同类型的进程,每种进程都有其自己的特点和属性:1.交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。2.批处理进程:这种进程和终端没有联系,是一个进程序列。3.守护进程:Linux系统启动时启动的进程,并在后台运行。上述三种进程各有各的作用,使用场合也有所不同。通常在操作系统中,进程至少要有三种基本状态,分别为:运行态、就绪态和封锁态(或阻塞态)。1.运行态是指当前进程已分配到CPU,它的程序正在处理器上执行时的状态。处于这种状态的进程个数不能大于CPU的数目。在一般单CPU机制中,任何时刻处于运行状态的进程至多有一个。2.就绪状态是指进程已具备运行条件,但因为其他进程正占用CPU,所以暂时不能运行而等待分配CPU的状态,一旦把CPU分给它,立即就可运行。在操作系统中,处于就绪状态的进程数目可以是多个。3.封锁状态是指进程因等待某种事件发生(例如等待某一输入、输出操作完成,等待其他进程发来的信号等)而暂时不能运行的状态。也就是说,处于封锁状态的进程尚不具备运行条件,即使CPU空闲,它也无法使用。这种状态有时也称为不可运行状态或挂起状态。系统中处于这种状态的进程也可以是多个的。在Linux系统中,进程主要有以下几个状态:1.运行态(TASK_RUNNING):此时,进程正在运行(即系统的当前进程)或者准备运行(即就绪态);2.等待态:此时进程在等待一个事件的发生或某种系统资源。Linux系统分为两种等待进程:可中断的(TASK_INTERRUPTIBLE)和不可中断的(TASK_UNINTERRUPTIBLE)。可中断的等待进程可以被某一信号(Signal)中断;而不可中断的等待进程不受信号的打扰,将一直等待硬件状态的改变。3.停止态(TASK_STOPPED):进程被停止,通常是通过接收一个信号。正在被调试的进程可能处于停止状态。4.僵死态(TASK_ZOMBIE):由于某些原因被终止的进程,但是该进程的控制结构(task_struct)仍然保留着。5按照进程的功能和运行的程序分类,进程可划分为两大类:一类是系统进程,只运行在内核模式,执行操作系统代码,完成一些管理性的工作,例如内存分配和进程切换;另外一类是用户进程,通常在用户模式中执行,并通过系统调用或在出现中断、异常情况时进入内核模式。用户进程既可以在用户模式下运行,也可以在内核模式下运行。3.2启动进程键入需要运行的程序的程序名,执行一个程序,其实也就是启动了一个进程。在Linux系统中每个进程都具有一个进程号,用于系统识别和调度进程。启动一个进程有两个主要途径:手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动。1.手工启动有用户输入命令,直接启动一个进程使是手工启动进程。但手工启动进程又可以分为很多种,根据启动的进程类型不同、性质不同,实际结果也不一样,`下面分别介绍:①前台启动这或许是手工启动一个进程的最常用的方式。一般地,用户键入一个命令“1s-l”,这就己经启动了一个进程,而且是一个前台的进程.这时候系统其实己经处于一个多进程状态。或许有些用户会疑惑:我只启动了一个进程而己,但实际上有许多运行在后台的、系统启动时就已经自动启动的进程正在悄悄运行着。②后台启动直接从后台手工启动个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。实际上这两种启动方式有个共同的特点,就是新进程都是由当前shell这个进程产生的。也就是说,是shell创建了新进程,于是就称这种关系为进程间的父子关系。这里shell是父进程,而新进程是子进程。二个父进程可以有多个子进程,一般地,子进程结束后才能继续父进程:当然如果是从后台启动,那就不用等待子进程结束了。还有一种比较特殊的情况是在使用管道符的时候。例如:nroff-manps.l|grepkill|more这时候实际上是同时启动了三个进程.注意是同时启动的,所有放在管道两边的进程都将被同时启动,它们都是当前shell的子程序,互相之间可以称为兄弟进程。以上介绍的是手工启动进程的一些内容,作为一名系统管理员,很多时候都需要把事情安排好以后让其自动运行。因为管理员不是机器,也有离开的时候,所以有些必须要做的工6作而恰好管理员不能亲自操作,这时候就需要使用调度启动进程了。2.调度启动有时候需要对系统进行一些比较费时而且占用资源的维护工作,这些工作适合在深夜进行,这时候用户就可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统会自动完成这一切工作。例如:用户使用at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才可以正常运行。at命令可以只指定时间,也可以时间和日期一起指定.需要注意的是,指定时间有个系统判别问题。比如说:用户现在指定了一个执行时间:凌晨3:20,而发出at命令的时间是头天晚上的20:00,那么究竟是在哪一天执行该命令呢?如果用户在3:20以前仍然在工作,那么该命令将在这个时候完成:如果用户3:20以前就退出了工作状态,那么该命令将在第二天凌晨才得到执行。下面是at

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功