计算机操作系统实验——进程管理(基于Ubuntu的实现)

操作系统——进程管理(基于Ubuntu的实现)

  1. 环境:VMware® Workstation 12 Pro;ubuntu-18.04.6-desktop-amd64;
  2. 将虚拟机装好后,打开ubuntu虚拟机,进入终端进行vim和gcc的安装
  3. vim安装:命令:sudo apt-get install vim-gtk
  4. vim安装过程:这里记得输入y,输入后等待它安装成功
    在这里插入图片描述
  5. 安装gcc,命令为:sudo apt install gcc
  6. gcc安装过程:这里也要输入y,然后就坐等安装成功在这里插入图片描述
  7. 进程创建。编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。要求每一个进程在屏幕上显示一个字符:父进程显示字符‘a’;子进程分别显示字符‘b’和‘c’。
  8. 这里要利用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");
        }
}
~                                                                              
~       

在这里插入图片描述

  1. 利用gcc进行编译命令为:gcc a.c -o a ;编译完成后输入:./a结果为
    在这里插入图片描述

  2. 进程控制。用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);
        }
}
~   

在这里插入图片描述

  1. 输入gcc命令: gcc aa.c -o aa 结果:在这里插入图片描述
  2. 输入./aa 查看结果为:在这里插入图片描述
  3. 以上便是我关于计算机操作系统实验的——进程管理的一些见解,如有不足欢迎大家在评论区讨论,或者私聊我,感谢大家!!同时在郑重声明以上只可作为参考学习,不可另作他用!!!
  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华丽转场

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值