《Linux操作系统》实验五-作业任务和进程管理
操作系统实验报告进程管理

操作系统实验报告进程管理操作系统实验报告:进程管理引言操作系统是计算机系统中的核心软件,负责管理计算机的硬件资源和提供用户与计算机之间的接口。
进程管理是操作系统的重要功能之一,它负责对计算机中运行的各个进程进行管理和调度,以保证系统的高效运行。
本实验报告将介绍进程管理的基本概念、原理和实验结果。
一、进程管理的基本概念1. 进程与线程进程是计算机中正在运行的程序的实例,它拥有独立的内存空间和执行环境。
线程是进程中的一个执行单元,多个线程可以共享同一个进程的资源。
进程和线程是操作系统中最基本的执行单位。
2. 进程状态进程在运行过程中会经历不同的状态,常见的进程状态包括就绪、运行和阻塞。
就绪状态表示进程已经准备好执行,但还没有得到处理器的分配;运行状态表示进程正在执行;阻塞状态表示进程由于某些原因无法继续执行,需要等待某些事件的发生。
3. 进程调度进程调度是操作系统中的一个重要任务,它决定了哪个进程应该获得处理器的使用权。
常见的调度算法包括先来先服务(FCFS)、最短作业优先(SJF)和时间片轮转等。
二、进程管理的原理1. 进程控制块(PCB)PCB是操作系统中用于管理进程的数据结构,它包含了进程的各种属性和状态信息,如进程标识符、程序计数器、寄存器值等。
通过PCB,操作系统可以对进程进行管理和控制。
2. 进程创建与撤销进程的创建是指操作系统根据用户的请求创建一个新的进程。
进程的撤销是指操作系统根据某种条件或用户的请求终止一个正在运行的进程。
进程的创建和撤销是操作系统中的基本操作之一。
3. 进程同步与通信多个进程之间可能需要进行同步和通信,以实现数据共享和协作。
常见的进程同步与通信机制包括互斥锁、信号量和管道等。
三、实验结果与分析在本次实验中,我们使用了一个简单的进程管理模拟程序,模拟了进程的创建、撤销和调度过程。
通过该程序,我们可以观察到不同调度算法对系统性能的影响。
实验结果显示,先来先服务(FCFS)调度算法在一些情况下可能导致长作业等待时间过长,影响系统的响应速度。
linux进程管理的实验报告

实验报告:Linux进程管理1. 引言本实验报告将详细介绍Linux系统中进程管理的相关知识和操作。
进程管理是操作系统中的一个重要组成部分,它负责控制和调度系统中运行的各个进程,确保系统资源的合理分配和进程的正常运行。
在本实验中,我们将通过一系列步骤来了解Linux系统中进程的创建、监控和控制。
2. 实验环境为了完成本实验,我们需要在一台运行Linux操作系统的计算机上进行操作。
本实验报告基于Ubuntu 20.04 LTS操作系统进行撰写,但是适用于大多数Linux 发行版。
3. 实验步骤步骤一:创建新进程在Linux系统中,可以通过fork()系统调用来创建新的进程。
以下是一个简单的示例代码:#include <stdio.h>#include <unistd.h>int main() {pid_t pid = fork();if (pid == 0) {// 子进程逻辑printf("这是子进程\n");} else if (pid > 0) {// 父进程逻辑printf("这是父进程\n");} else {// 进程创建失败printf("进程创建失败\n");}return0;}步骤二:查看进程信息Linux系统提供了多种命令来查看系统中运行的进程信息。
以下是一些常用的命令:•ps:显示当前终端下的进程列表。
•top:实时显示进程的CPU、内存等资源占用情况。
•pstree:以树状结构显示进程的层次关系。
步骤三:杀死进程有时候我们需要终止一个运行中的进程,可以使用kill命令来发送终止信号给目标进程。
以下是一个示例:kill <PID>请将<PID>替换为目标进程的进程ID。
步骤四:进程优先级调整通过调整进程的优先级,可以影响进程在系统中的调度顺序。
在Linux系统中,可以使用nice命令来调整进程的优先级。
使用Linux终端管理进程和任务

使用Linux终端管理进程和任务Linux终端是一种强大的工具,可以用来管理和监控系统中运行的进程和任务。
本文将介绍如何使用Linux终端来管理进程和任务,以提升系统性能和效率。
一、查看进程在Linux终端中,可以使用ps命令来查看系统中正在运行的进程。
ps命令有多种不同的选项,可以根据需求选择不同的选项来获取进程的详细信息。
1. ps aux该命令可以显示系统中所有用户的进程信息,并以列表形式进行展示。
每个进程的信息包括进程ID(PID)、CPU使用率、内存占用、进程状态等。
例如:```$ ps aux```2. ps -ef该命令显示所有进程的完整信息,包括进程之间的父子关系。
例如:```$ ps -ef```3. ps -u该命令可以按照用户名来筛选进程,并只显示该用户的进程信息。
例如:```$ ps -u username```二、管理进程在Linux终端中,可以使用kill命令来终止运行中的进程。
kill命令可以接受进程ID作为参数,或者使用进程名称来终止进程。
1. 终止进程使用kill命令终止进程时,需要指定进程的PID。
例如,要终止进程ID为123的进程,可以使用以下命令:```$ kill 123```2. 强制终止进程有时候进程可能无法正常终止,这时可以使用kill命令的-9选项强制终止进程。
例如:```$ kill -9 123```三、任务管理除了进程管理,Linux终端还可以方便地管理系统中的任务。
任务是指在终端中运行的命令或程序。
1. 后台运行任务在Linux终端中,可以使用&符号将任务放入后台运行。
例如,要在后台运行一个脚本文件,可以使用以下命令:```$ ./script.sh &```2. 列出后台任务使用jobs命令可以列出当前终端中所有正在运行的后台任务。
例如:```$ jobs```3. 暂停和恢复任务使用Ctrl+Z组合键可以将当前正在运行的任务暂停,使用fg命令可以将任务从后台恢复到前台运行。
Linux进程管理-实验报告

《Linux 操作系统设计实践》实验一:进程管理实验目的:(1)加深对进程概念的理解,明确进程和程序的区别.(2)进一步认识并发执行的实质。
(3) 学习通过进程执行新的目标程序的方法.(4)了解Linux 系统中进程信号处理的基本原理。
实验环境:Red Hat Linux实验内容:(1)进程的创建编写一段程序,使用系统调用fork()创建两个子进程,当此进程运行时,在系统中有一个父进程和两个子进程活动,让每一个进程在屏幕上显示一个字符,父进程显示字符“a”;子进程分别显示字符“b”和字符“c”,试观察记录屏幕上的显示结果,并分析原因。
程序代码:#include〈stdio。
h〉int main(){int p1 ,p2 ;while((p1=fork())==—1);if(p1==0)putchar(’b’);else{while((p2=fork())==-1);if(p2==0)putchar(’c’);elseputchar('a’);}return 0;}运行结果:bca分析:第一个while里调用fork() 函数一次,返回两次.子进程P1得到的返回值是0,父进程得到的返回值是新子进程的进程ID(正整数);接下来父进程和子进程P1两个分支运行,判断P1==0,子进程P1符合条件,输出“b”;接下来else里面的while里再调用fork()函数一次,子进程P2得到的返回值是0,父进程得到的返回值是新子进程的进程ID(正整数);接下来判断P2==0,子进程P2符合条件,输出“c”,接下来父进程输出“a”,程序结束.(2)进程的控制①修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因.程序代码:#include〈stdio。
h〉int main(){int p1,p2;while((p1=fork())==-1);if(p1==0)printf(”Child1 is running!\n”);else{while((p2=fork())==—1);if(p2==0)printf(”Child2 is running!\n");elseprintf("Father is running!\n");}return 0;}运行结果:Child1 is running!Child2 is running!Father is running!分析:本实验和上一个实验一样,只是将每个进程输出一个字符改为每个进程输出一句话。
linux操作系统实验五

linux操作系统实验五实验五进程管理子系统——进程控制实验类别:设计型实验时数:6学时开课单位:计算机学院实验地点:健翔校区计算中心一、实验目的◆掌握进程的概念,深入理解进程的含义。
认识并理解并发环境中进程执行的实质问题,了解构成并发机制的进程创建过程。
能够使用系统调用完成进程创建,形成多个进程并发的环境。
◆了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控制。
掌握在进程执行中对进程进行睡眠、同步、撤销等控制方法。
◆进一步认识并发执行的实质,分析进程竞争资源的现象,学习解决进程互斥的方法。
二、实验环境操作系统:任何Unix/Linux及Sun Solaris 或windows 系列应用系统:gcc编译器。
若OS为windows系列,则还需相应的模拟环境三、预备知识1、L INUX系统中进程的含义在LINUX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。
进程是并发环境中的实体,每个进程用一个task_struct的数据结构来表示,用来管理系统中的进程,因而task_struct就是LINUX系统中的PCB。
另外,系统内核中还有一个task向量表,是指向系统中每一个task_struct数据结构的指针的数组,因而task向量表就是LINUX系统中的PCB表。
2、L INUX中的进程创建除了init进程外,LINUX中的所有进程都是由其他进程创建的。
LINUX 中提供了系统调用fork和clone,可被进程用来创建子进程。
但系统调用fork 和clone其实都是调用内核函数do_fork(),通过克隆当前进程来创建子进程的。
四、实验内容本实验要求在LINUX/UNIX环境下用C语言编写三个多进程并发执行的程序,基本涉及了LINUX/UNIX进程管理子系统中较为常用的有关进程控制的系统调用。
实验内容如下:(1)使用fork()系统调用创建进程,使父、子进程分别运行不同的代码(要求子进程在父进程之前运行):子进程:①以长格式显示当前目录的情况;②分屏显示file1的内容。
Linux实验任务书参考答案

《Linux操作系统》实验指导书无锡科技职业学院嵌入式教研室实验一 Redhat Enterprise Linux系统的安装一.实验目的:1.掌握安装Linux系统时收集计算机硬件信息的方法。
2.掌握Linux硬盘的分区方法和硬盘分区的大小。
3.掌握Linux系统安装的过程和在安装过程中各选项的设置及硬件设备的配置。
4.通过学习项目五Linux安装的内容,学会如何安装Linux二.实验环境:PC机一台;已安装了windows 系统;vmware虚拟机;Redhat Enterprise Linux5镜像文件。
三.实验要求:通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。
在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。
实验二Linux常用命令的使用一.实验目的:1.掌握Linux系统启动和退出方法。
2.掌握Linux系统命令获得帮助的方法。
3.掌握Linux系统中的命令格式及命令使用的方法。
4.掌握Linux系统中常用基本命令的作用和命令中各选项的作用。
二.实验环境安装了Linux系统的计算机一台。
三.实验要求:1.掌握启动计算机进入Linux系统和正常退出Linux系统的方法。
2.掌握Linux系统命令的基本格式。
3.全用man和help命令获得命令帮助信息。
4.练习使用clear、date、echo、cat、ls、shutdown、reboot等命令。
四.实验内容:1.启动计算机,使用用户root进入Linux。
2.练习使用向上与向下光标查看命令历史表。
3.练习将多个命令在一行显示;练习将一个命令在多行显示。
mkdir yangye;lscp /root/yy\/home4.在/root目录下创建文件aa1,aa2,aaa,aab,aaaa,aabc等。
touch aa1 aa2 aaa aab aaaa aabc5.使用通配符查看/root目录下以aa开头的文件。
实验五linux进程管理

实验五L i n u x进程管理(总5页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March实验五 Linux进程管理一.实验目的:1.进行系统进程管理。
2.周期性任务安排二.实验内容:1.进程状态查看;2.控制系统中运行的进程;3.安排一次性和周期性自动执行的后台进程;三.实验练习:任务一进程管理实验内容:1、查看系统中的进程;2、控制系统中的进程;3、安排计划任务。
实验步骤:1.使用ps命令查看和控制进程显示本用户的进程:显示所有用户的进程:。
在后台运行cat命令:查看进程cat :杀死进程cat:。
再次查看进程cat,看看是否被杀死。
注:ps命令包括较丰富的可选参数,常见的可选参数包括如下几个。
-A:显示所有用户启动的进程。
-a:显示所有其他用户的进程。
-u::显示进程拥有者、进程启动时间等更详细的信息。
-x:显示不是终端提供的进程信息。
-r:只显示正在运行的进程。
-m:显示线程信息。
-w:宽行显示进程信息。
-l:用长格式显示进程信息。
-t::只显示由终端/dev/tty提交的信息。
2.使用top命令查看和控制进程用top命令动态显示当前的进程。
只显示用户user01的进程(利用u键)。
利用k键,杀死指定进程号的进程。
top参数:-b 以批量模式运行,但不能接受命令行输入;-c 显示命令行,而不仅仅是命令名;-d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;-i 禁止显示空闲进程或僵尸进程;-n NUM 显示更新次数,然后退出。
比如 -n 5,表示top更新5次数据就退出;-p PID 仅监视指定进程的ID;PID是一个数值;-q 不经任何延时就刷新;-s 安全模式运行,禁用一些效互指令;-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;交互式命令键位:space 立即更新;c 切换到命令名显示,或显示整个命令(包括参数);f,F 增加显示字段,或删除显示字段;h, 显示有关安全模式及累积模式的帮助信息;k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)i 禁止空闲进程和僵尸进程;l 切换到显法负载平均值和正常运行的时间等信息;m 切换到内存信息,并以内存占用大小排序;n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;o,O 改变显示字段的顺序;r 把renice 应用到一个进程,提示输入PID和renice的值;s 改变两次刷新时间间隔,以秒为单位;t 切换到显示进程和CPU状态的信息;A 按进程生命大小进行排序,最新进程显示在最前;M 按内存占用大小排序,由大到小;N 以进程ID大小排序,由大到小;P 按CPU占用情况排序,由大到小S 切换到累积时间模式;T 按时间/累积时间对任务排序;W 把当前的配置写到~/.toprc中;3.挂起和恢复进程执行命令cat。
实验5:进程管理及操作

实验5:进程管理及操作实验5进程管理及操作实验目的1.了解进程号,进程组号,会话号。
2.清楚进程两个生成子进程函数之间的差别实验内容a)修改程序getpgid_example.c,使结果没有父进程为1的情况。
并说明原因b)有3个进程,其中一个为父进程,其余为父进程的子进程,分别打印这三个进程的进程号,父进程号,进程组号。
c)有3个进程,其中一个为父进程,其余为父进程的子进程,其中一个子进程运行"ls-l"指令,另一个子进程在暂停5s后异常退出,父进程不阻塞自己,并等待子进程的退出信息,待收到该信息,父进程返回。
d)请修改提供的源码,实现简单的myshell,实验结果实验总结#include#include#include#include#include#include#define normal 0 /*一般的命令*/#define out_redirect 1 /*输出重定向*/#define in_redirect 2 /*输入重定向*/#define have_pipe 3 /*命令中有管道*/void print_prompt(); /*打印提示符*/void get_input(char *); /*得到输入的命令*/void explain_input(char *,int *,char a[100][256]); /*对输入命令进行解析*/ void do_cmd(int ,char a[100][256]); /*执行命令*/ int find_command(char *); /*查找命令中的可执行程序*/int main(int argc,char **argv){int i;int argcount = 0;char arglist[100][256];char **arg = NULL;char *buf = NULL;buf = (char *)malloc(256);if (buf == NULL){perror("malloc failed");exit(-1);}while(1){/*将buf所指向的空间清零*/memset(buf,0,256);print_prompt();get_input(buf);/*若输入的命令为exit或logout则退出本程序*/if (strcmp(buf,"exit\n") == 0 || strcmp(buf,"logout\n") == 0) break;for (i=0;i<100;i++){arglist[i][0] = '\0';}argcount = 0;explain_input(buf,&argcount,arglist);do_cmd(argcount,arglist);}/*将buf所指向的内存释放*/if (buf != NULL){free(buf);buf = NULL;}exit(0);}void print_prompt(){printf("myshell$$");}/*获取用户输入*/void get_input(char *buf){int len = 0;int ch;ch = getchar();while (len <256 && ch != '\n'){buf[len++] = ch;ch = getchar();}if (len ==256){printf("commond is too long \n"); exit(-1); /*输入的命令过长则退出程序*/ }buf[len] = '\n';len++;buf[len] = '\0';}/*解析buf中的命令,将结果存入arglist中,命令以回车符号\n 结束*//*如输入命令为“ls -l /tmp”,则arglist[0],arglist[1],arglist[2]分别为ls,-l和/t mp*/void explain_input(char *buf,int *argcount,char arglist[100][256]) {char *p = buf;char *q = buf;int number = 0;while(1){if (p[0] == '\n')break;if (p[0] == ' ')p++;else {q = p;number = 0;while ((q[0] != ' ') && (q[0] != '\n')){number++;q++;}//strncpy(arglist[*argcount],p,number+1);arglist[*argcount][number] = '\0';*argcount = *argcount + 1;p = q;}}}void do_cmd (int argcount,char arglist[100][256]){int flag = 0;int how = 0; /*用于指示命令中是否含有>,<,|*/int background = 0; /*标识命令中是否有后台运行标识符*/ int status;int i;int fd;char *arg[argcount+1];char *argnext[argcount+1];char *file;pid_t pid;/*将命令取出*/for (i=0;i<argcount;i++){< p="">arg[i] = (char *)arglist[i];}arg[argcount] = NULL;/*查看命令行是否有后台运行符*/for (i=0;i<argcount;i++){< p="">if (strncmp(arg[i],"&",1) == 0){if (i == argcount - 1){background = 1;arg[argcount-1] = NULL;break;}else {printf("wrong command\n");return;}}}for (i=0;arg[i] != NULL;i++){ if (strcmp(arg[i],">") == 0){flag++;how = out_redirect;if (arg[i+1] == NULL)flag++;}if (strcmp(arg[i],"<") == 0){flag++;how = in_redirect;if (i == 0)flag++;}if (strcmp(arg[i],"|") == 0){flag++;how = have_pipe;if (arg[i+1] == NULL)flag++;if (i == 0)flag++;}}/*flag大于1,说明命令中含有多个>,<,|符号,本程序是不支持这样的命令的,或者命令格式不对,如“ls -l /tmp >”*/ if (flag > 1){printf("wrong command\n");return;}if (how == out_redirect){/*命令只含有一个输出重定向符号>*/ for (i=0;arg[i] != NULL;i++){if (strcmp(arg[i],">") == 0){file = arg[i+1];arg[i] = NULL;}}}if (how == in_redirect){/*命令只含有一个输入重定向符号<*/ for (i=0;arg[i] != NULL;i++){if (strcmp(arg[i],"<") == 0){file = arg[i+1];arg[i] = NULL;}}}if (how == have_pipe){/*命令只含有一个管道符号|*//*把管道符号后面的部分存入argnext中,管道后面的部分是一个可执行的Shell命令*/ for (i=0;arg[i] != NULL;i++){if (strcmp(arg[i],"|") == 0){arg[i] = NULL;int j;for (j=i+1;arg[j] != NULL;j++){argnext[j-i-1] =arg[j];}argnext[j-i-1] = arg[j];break;}}}if ((pid = fork()) < 0) {printf("fork error\n");return;}switch(how) {case 0:/*pid为0说明是子进程,在子进程中执行输入的命令*/ /*输入的命令中不含>,<和|*/if (pid == 0){if (!(find_command(arg[0]))){printf("%s:command not found\n",arg[0]);exit(0);}execvp(arg[0],arg);exit(0);}break;case 1:if (pid == 0){if (!(find_command(arg[0]))){printf("%s:command not found\n",arg[0]);exit(0);}fd = open(file,O_RDWR|O_CREAT|O_TRUNC,0644); execvp(arg[0],arg);exit(0);}break;case 2:/*输入的命令中含有重定向符<*/if (pid == 0){if (!(find_command(arg[0]))){printf("%s:command not found\n",arg[0]);exit(0);}dup2(fd,0);execvp(arg[0],arg);exit(0);}break;case 3:/*输入的命令中含有管道*/if (pid == 0){int pid2;int status2;int fd2;if ((pid2 = fork()) < 0){printf("fork2 error\n");return;}else if (pid2 == 0){if (!(find_command(arg[0]))){printf("%s:command not found\n",arg[0]);exit(0);}fd2 = open("/tmp/youdonotknowfile",O_WRONLY|O_CREAT|O_TRUNC ,0644); dup2(fd2,1);execvp(arg[0],arg);exit(0);}if (waitpid(pid2,&status2,0) == -1)printf("wait for child process error\n");if (!(find_command(argnext[0]))){printf("%s:command not found\n",argnext[0]);exit(0);}fd2 = open("/tmp/youdonotknowfile",O_RDONLY);dup2(fd2,0);execvp(argnext[0],argnext);if (remove("/tmp/youdonotknowfile"))printf("remove error\n");exit(0);}break;default:break;}/*若命令中有&,表示后台执行,父进程直接返回,不等待子进程结束*/if (background == 1){printf("[process id %d]\n",pid);return;}/*父进程等待子进程结束*/if (waitpid(pid,&status,0) == -1)printf("wait for child process error\n");}int find_command(char *command){DIR *dp;struct dirent *dirp;char *path[] = {"./","/bin","/usr/bin",NULL};/*使当前目录下的程序可以运行,如命令"./fork"可以被正确解释和执行*/ if (strncmp(command,"./",2) == 0)command = command + 2;/*分别在当前目录、/bin和/usr/bin目录查找要执行的程序*/ int i = 0;while (path[i] != NULL){if ((dp = opendir(path[i])) == NULL)printf("can not open /bin \n");while((dirp = readdir(dp))!= NULL){if (strcmp(dirp->d_name,command) == 0){closedir(dp);return 1;}}closedir(dp);i++;}return 0;}</argcount;i++){<></argcount;i++){<>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Linux操作系统》
实验报告
实验五:作业任务和进程管理
一、实验目的
(1) 掌握UNIX系统作业、任务和进程管理的任务,了解Linux系统进程管理的图形界面;
(2) 了解UNIX的系统进程间通信机制,掌握信号操作和终止进程的命令。
(3) 了解任务和作业管理命令at和batch;
(4) 掌握UNIX系统的进程定时启动管理命令crontab;
(5) 了解进程的挂起,掌握fg,bg等命令。
二、实验环境
一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。
三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果)
1)进程管理与查询
(1)进程状态查询
1.ps –ef | more #显示所有进程及启动参数
2. ps –ajx | more #以作业方式显示进行信息
3. ps –el | more #以长格式显示所有进程信息
4.pstree –p
5.pstree -a
(2)终止进程的执行
1.终止某一已知PID进程:ps –9 PID(1)#PID由用户自己选择
2.在当前终端上执行命令:man ps
3、换一终端在其运行:ps –e | grep man #确定进程PID
4.终止进程执行:kill –9 PID #PID是上命令查询的结果
4.终止所的同名进程
终止上例中的man命令:killall man或 killall –9 man
分别至少在2个不同终端上登录,然后在其中的一个终端上分别执行以下命令,并观察和分析原因。
killall bash
killall –9 bash
执行killall -9 bash命令时,终端窗口关闭
(3) 进程的挂起及前后台调度
在一个终端上起动命令man man,在不退出man命令的情况下按下组合键Ctrl+Z,观察反映。
答:先退出当前页面,返回进入终端时的页面
先后执行命令jobs和fg命令,并观察反映。
再按下组合键Ctrl+Z,在提示符下再启动一个命令(比如ps –e | more)后,按下组合键Ctrl+Z,然后再先后执行命令jobs和fg或fg 1或fg 2命令,并观察反映。
最后将每的被挂起的进程通过fg命令调住前台,然后正常终止它们。
(4) 查询使用某个文件系统的进程
分别在终端(F1)/dev/tty1和(F2)/dev/tty2上以不同用户登录,要求其中的一个是超级用户。
使用命令查询命令
fuser -u /dev/tty1 和fuser -u /dev/tty2
观察执行的结果。
设root在F3上登录,在其上运行命令fuser -k /dev/tty2后观察F2上的用户情况。
f user -u /dev/tty1
fuser -u /dev/tty2
fuser -k /dev/tty2
(5) 进程管理的图形界面
通过
(6)Linux系统的任务管理图形界面:
以下列方法进入图形界面:
->系统工具->系统监视器或
->System Tools->System Monitor
启动任务管理器。
可通过界面进行相关操作,但最好不要做终止系统进程或自己进程之类的事。
四、实验总结(每项不少于20字)
存在问题:一些命令执行不成功,命令不熟悉,操作比较慢,出现一些不允许的操作,找不到原因。
许多代码已经忘记,再次操作时不仅生疏,还会出现许多错误。
也有很多知识点混淆。
解决方法:结合书本上的介绍和网上的一些讲解,可以得到部分的解决。
多复习课本,将忘记的知识补上,还要多拓展知识,用不同的方法解决问题。
收获:对之前课上的讲解知识更加熟悉了,掌握了更多一些书本上的知识。
查漏补缺,对以后的学习有很大的帮助。
五、教师批语。