您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 操作系统实验,实验3, 进程管理 (1)
实验三Linux进程管理Linux是一个多用户、多任务的操作系统各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对系统资源的使用情况,从而实施对进程和资源的动态管理Linux进程概述程序是存储在磁盘上包含可执行机器指令和数据的静态实体,而进程是在操作系统中执行的特定任务的动态实体一个程序允许有多个进程,而每个运行中的程序至少由一个进程组成。以FTP服务器为例,有多个用户使用FTP服务,则系统会开启多个服务进程以满足用户的需求作为一个多用户多任务操作系统,Linux每个进程与其他进程彼此独立,都有自己独立的权限与职责进程的含义Linux操作系统包括如下3种不同类型的进程,每种进程都有其自己的特点和属性交互进程批处理进程守护进程由shell启动,可在前台运行,也可在后台运行批处理进程和终端没有联系,它是一个进程序列Linux系统启动时的进程,在后台运行通常操作系统中,进程至少有3种基本状态,分别为:运行态、就绪态和阻塞态Linux系统中,进程主要有以下几个状态运行态(TASK_RUNNING)等待态停止态(TASK_STOPPED)僵死态(TASK_ZOMBIE)进程的状态正在运行,或准备好运行等待事件发生或某种系统资源通过接收某信号而被停止,例如正调试的进程进程被终止,但其控制结构仍被保留Linux系统中,进程的执行模式划分为用户模式和内核模式如果当前运行的是用户程序、应用程序或内核之外的系统程序,则对应进程处于用户模式用户程序执行过程中出现系统调用或发生中断,需要运行系统核心程序,则进入内核模式按功能和运行程序分,进程划分为系统进程和用户进程进程的工作模式守护进程守护进程是Linux系统3种进程之一;守护进程(Daemon,也称为精灵进程)守护进程经常在程序启动时开始运行,在系统结束时停止;这些进程没有控制终端,所以在后台运行Linux系统有许多标准守护进程周期性地运行来完成特定的任务(例如crond)连续地运行,等待处理系统中发生的某些特定的事件(例如xinetd和lpd)启动守护进程有如下几种方法在引导系统时启动人工手动从shell提示符启动使用crond守护进程启动执行at命令启动守护进程一般由系统在开机时通过脚本或root用户启动,总是活跃的、一般后台运行,等待处理任务请求系统启动script的执行期间被启动(/etc/rc.d)任何具有相应执行权限的用户重要守护进程表9-1所示为Linux系统中一些比较重要的守护进程以及其所具有的功能,用户可以通过使用这些进程方便地使用系统以及网络服务守护进程功能说明amd自动安装NFS(网络文件系统)apmd高级电源管理httpdWeb服务器xinetd支持多种网络服务的核心守候程序arpwatch记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库autofs自动安装管理进程automount,与NFS相关,依赖于NISbootparamd引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息crondLinux下的计划任务dhcpd启动一个DHCP(动态IP地址分配)服务器gated网关路由守候进程,使用动态的OSPF路由选择协议表9-1Linux重要守护进程列表守护进程功能说明inndUsenet新闻服务器linuxconf允许使用本地WEB服务器作为用户接口来配置机器lpd打印服务器namedDNS服务器netfs安装NFS、Samba和NetWare网络文件系统network激活已配置网络接口的脚本程序nfsdNFS服务器portmapRPCportmap管理器,管理基于RPC服务的连接postgresql一种SQL数据库服务器routed路由守候进程,使用动态RIP路由选择协议sendmail邮件服务器sendmailsmbSamba文件共享/打印服务snmpd本地简单网络管理守候进程squid激活代理服务器squidsyslog一个让系统引导时起动syslog和klogd系统日志守候进程的脚本xfsXWindow字型服务器,为本地和远程X服务器提供字型集xntpd网络时间服务器identd认证服务,在提供用户信息方面与finger类似续表启动进程在Shell中执行程序或者在桌面环境中打开某程序,从本质上说就是启动进程启动一个进程有两个主要途径:用户手动执行和系统调度。手动执行比较简单,因此本节主要对系统调度的进程执行进行介绍定时执行——at命令使用Linux的过程中,有时会需要在特定时间执行一些任务需要对系统进行一些费时而且占用资源的维护工作,例如网站数据库备份等用户可以事先进行调度安排,指定任务运行的时间或者场合,届时系统将自动启动该进程,自动完成这些工作此时就要使用at命令at命令可以只指定时间,也可以时间和日期一起指定:at[-qqueue][-ffile][-mldv]timeat-cjob1[job2job3...]使用指定队列从指定文件读取命令,非stdim:作业结束后发邮件l:列出用户排在队列中的作业d:删除指定要执行的命令序列v:显示作业执行时间将命令行上列出的作业送stdoatq命令的用途为显示待执行队列中的作业:atq[-V][-qqueue]atrm命令的功能为根据作业编号删除队列中的作业:atrm[-V]job1[job2job3...][操作要求1]设置一个调度,要求5分钟后向用户发送系统即将重启的消息,并在提示信息出现后的2分钟后重启系统按组合键[Ctrl+Alt+F1]切换到第一个虚拟终端,以用户名jkx登录;按组合键[Ctrl+Alt+F2]切换到第二个虚拟终端,以超级用户身份登录字符界面,以下操作在该终端上完成;输入命令“atnow+5minutes”,设置5分钟后执行at调度内容;在提示符后输入“wallpleaselogout;thecomputerwillrestart.”,设置将要发送的消息;输入“shutdown+2”或“reboot+2”,设置系统2分钟后重启;[Ctrl+D]结束内容编辑。切换到第一个虚拟终端观察at调度的执行效果(5分钟后系统将执行重启调度任务)。[操作要求2]设置一个调度,要求1分钟后执行文件job中的作业。文件job的内容为:find/home/jkx/-name“*.c”/home/jkx/fdresultwalluserjkx,allcodefileshavebeensearchedout!Pleasecheckout.[操作步骤]在图形界面上利用终端通过命令“su-”切换到超级用户,编辑文件“job”;按组合键[Ctrl+Alt+F2]切换到第二个虚拟终端(超级用户);输入命令“at–fjobnow+1minute”,设置1分钟后执行at调度内容;稍等后观察at调度的执行效果,再切换到第一个虚拟终端观察at调度的执行效果;空闲时执行——batch命令batch命令用低优先级运行作业batch[-V][-qqueue][-ffile][-mv][time]该命令与at命令的唯一的区别在于at命令是在指定时间,很精确地执行指定命令,而batch却是在系统负载较低,资源比较空闲的时候执行命令batch的执行主要是由系统来控制的,因而用户的干预权力很小;适合于执行占用资源较多的命令周期性执行——cron和crontab命令完成周期性的任务需要使用cron命令。cron命令通常是在在系统启动时就由一个shell脚本自动启动,进入后台(所以不需要使用“&”符号)一般的用户没有运行该命令的权限cron命令运行时会搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的文件将载入内存cron调度的内容共6个字段,从左到右依次为分钟、时、日期、月份、星期和命令,如下表所示:cron调度时,所有字段都不能为空,字段之间用空格分隔,如果不指定字段内容,则使用字符“*”。使用字符“-”表示一段时间。例如在日期栏中输入“1-5”,则表示每月的前5天都要执行该命令使用字符“,”表示指定时间。例如在日期栏中输入“5,15,25”,则表示每月的第5、15、25天执行该命令使用字符“/”表示间隔频率。例如在小时栏中输入“*/2”,则表示每间隔2个小时执行该命令字段分钟小时日期月份星期命令取值范围0~590~2301~3101~120~6,0为周日安排周期性任务的命令是crontab。该命令用于安装、删除或者列出用于驱动cron后台进程的表格,crontab命令基本格式如下:crontab[-uuser]filecrontab[-uuser]{-l|-r|-e}l:标准输出上显示当前的crontabr:删除当前的crontab文件e:使用指定编辑器编辑当前crontab文件,结束离开后自动安装文件[操作要求1]jkx用户设置crontab调度,要求每天上午8时30分查看系统的进程状态,并将查看结果保存到ps.log文件[操作步骤]以普通用户jkx登录,并输入命令“crontab-e”,新建一个crontab配置文件;屏幕出现vi编辑器,按[i]键进入输入模式,输入“3008***psps.log”,然后按[Esc]键退出文本输入模式,并按[:]键切换到最后行模式,输入“wq”保存退出vi编辑器;为立即看到执行结果,可切换为超级用户,修改系统时间,如8时29分,回到jkx用户界面;大约等待1分钟后,查看ps.log文件内容以确定crontab调度设置成功。[操作要求2]jkx用户设置crontab调度,要求每天上午8时30分查看系统的进程状态,并将查看结果保存到fps.log文件,要求不使用vi编辑器,使用图形界面的gedit编辑crontab文件。[操作步骤]以普通用户jkx登录,利用gedit新建一个crontab配置文件jobcron,文件内容为:3008***psfps.log安装crontab配置文件,使之成为该用户的crontab文件,输入命令“crontabjobcron”;转到/var/spool/cron目录查看,发现多了一个文件jkx,即crontab文件,查看该文件内容,与jobcron相比较。为立即看到执行结果,可切换为超级用户,修改系统时间,如8时29分,回到jkx用户界面;大约等待1分钟后,查看fps.log文件内容以确定crontab调度设置成功。管理进程使用这些命令,用户可以实时、全面、准确地了解系统中运行进程的相关信息,从而对这些进程进行相应的挂起、中止等操作。ps命令是查看进程状态的最常用的命令,可以提供关于进程的许多信息。根据显示的信息可以确定哪个进程正在运行、哪个进程被挂起、进程已运行多长时间、进程正在使用的资源、进程的相对优先级,以及进程的标识号(PID)等信息top命令和ps命令的基本作用是相同的,显示系统当前的进程及其状态,但是top是一个动态显示过程,可以通过用户按键来不断刷新当前状态。如果在前台执行,该命令将独占前台,直到用户终止该程序为止。ps命令的常用选项l:以长格式显示进程信息ef:显示系统中所有进程的全面信息aux:显示所有终端上所有用户进程的所有信息ps命令各输出项的含义为:S(state):进程状态,其中R表示运行状态;S表示休眠状态;T表示暂停或终止状态;Z表示僵死状态UID(UserID):进程启动者的用户IDPID(ProcessID):进程号PPID:父进程的进程号NI(Nice):进程的优先级值SZ(Size):进程占用内存空间的大小,以KB为单位TTY:进程所在终端的终端号,其中桌面环境的终端窗口表示为pts/0,字符界面的终端号为tty1~tty6.TIME:进程累计使用的CPU时
本文标题:操作系统实验,实验3, 进程管理 (1)
链接地址:https://www.777doc.com/doc-5537874 .html