操作系统——进程管理(基于Ubuntu的实现)
- 环境:VMware® Workstation 12 Pro;ubuntu-18.04.6-desktop-amd64;
- 将虚拟机装好后,打开ubuntu虚拟机,进入终端进行vim和gcc的安装
- vim安装:命令:sudo apt-get install vim-gtk
- vim安装过程:这里记得输入y,输入后等待它安装成功
- 安装gcc,命令为:sudo apt install gcc
- gcc安装过程:这里也要输入y,然后就坐等安装成功
- 进程创建。编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。要求每一个进程在屏幕上显示一个字符:父进程显示字符‘a’;子进程分别显示字符‘b’和‘c’。
- 这里要利用vi编辑器创建一个文件a.c 命令为:vi a.c ;代码为
#include<stdio.h>
main(){
int p1,p2;
if(p1=fork())
printf("this is b\n");
else{
if(p2=fork())
printf("this is c\n");
else
printf("this is a\n");
}
}
~
~
-
利用gcc进行编译命令为:gcc a.c -o a ;编译完成后输入:./a结果为
-
进程控制。用fork()创建一个进程,再调用exec()用新的程序替换该子进程的内容。同时利用wait()来控制进程执行顺序。命令:vi aa.c ;代码为:
#include<sys/types.h>
#include<sys/wait.h>
#include<stdio.h>
#include<unistd.h>
main(){
int pid;
pid=fork();
switch(pid){
case -1:
printf("fork fail\n");
exit(1);
case 0:
execl("/bin/ls","ls","-color",NULL);
exit(1);
default:
wait(NULL);
printf("ls completed!\n");
exit(0);
}
}
~
- 输入gcc命令: gcc aa.c -o aa 结果:
- 输入./aa 查看结果为:
- 以上便是我关于计算机操作系统实验的——进程管理的一些见解,如有不足欢迎大家在评论区讨论,或者私聊我,感谢大家!!同时在郑重声明以上只可作为参考学习,不可另作他用!!!