操作系统实验二 进程创建
创始人
2024-01-17 15:55:41

百年传承的实验,看不懂题意就对啦

vim写C代码的时候,记得先insetr键,Esc键后:wq保存。

更改后记得gcc重新编译。

代码显示异常,看评论区。

《操作系统》实验报告

姓名

Rhyme_7

学号

1008611

实验序号

实验二

实验名称

实验二进程创建

实验目的

1.加深对进程概念的理解,明确进程和程序的区别。

2.掌握进程的创建方法

实验内容

实验题目(1)

ps命令的使用

实验代码、实验过程(界面方式下的抓图)、实验结果(抓图)

(1)显示所有进程,找出使用当前进程的进程ID号,查看其状态。

ps -aux

当前进程ID号如下图,为5350

(2)列出目前所有面向用户的进程。(进程内可省略)

ps -ef

(3)显示所有自己所在用户的进程,并以长格式输出。

ps -U 用户名 -l

(4)用面向任务的格式显示个人用户中bash命令中的所有实例;并查看其父进程的详细信息。

ps -l|grep bash

Cat /proc/这里填PID/status

实验心得(遇到什么问题,如何解决)

不太理解题目中的一些要求,例如面向任务。询问室友后得知。

实验题目(2)

进程的创建

实验代码、实验过程(界面方式下的抓图)、实验结果(抓图)

(1)编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。

#include 
#include 
int main(){
int p1,p2;
while((p1=fork())==-1);        /*创建子进程p1*/
if(p1==0) putchar('b');
else
{
while((p2=fork())==-1);   /*创建子进程p2*/
if(p2==0) putchar('c');
else  putchar('a');
}
return 0;
}

问题1:该程序的运行结果为何?多次运行后结果是否相同,为什么?

多次运行的结果不相同。因为没有同步措施,父进程和两个子进程的输出具有随机性。

问题2:修改该程序,使之在打印结果的同时标出是由哪个程序运行的出来的。(利用getpid()函数)

(2)进程的父进程和子进程

编写一段程序,使用系统调用fork()创建一个子进程。让子进程和父进程并发同时在每个进程中显示其子进程与父进程的PID号。

#include 
#include 
#include 
#include 
int main(){
pid_t pid;
printf("before calling fork,calling process pid = %d\n",getpid());
pid=fork();
if(pid==-1)         /*创建失败*/
{
printf("fork fail!\n");
exit(1);}               /*表示异常退出.这个1是返回给操作系统的*/
if(pid==0){
printf("this is child process and child's pid = %d,parent'spid %d\n",getpid(),getppid());}
if(pid>0){
//sleep(1);    /*表示睡眠1秒*/
printf("this is parent process and pid = %d ,child's pid = %d\n",getpid(),pid);}
return 0;
exit(0);                        /*表示正常退出*/
}

分析并运行该程序回答如下问题,将结果与分析写在实验报告中。

问题1:程序中红色部分的作用可以让执行该语句的进程等待一秒钟后继续执行,当不添加改语句时程序的运行结果是什么?为什么?

不添加sleep(1),程序不会等待,不会将CPU给其他线程

问题2:添加sleep(1)语句后程序的运行结果是什么?与不加该语句有何区别?为什么?

加上sleep(1)后,程序会等待1秒,将CPU让给其他线程,但是不会释放锁,因此sleep(1)后自动恢复

问题3:通过PS命令查看各个程序的状态,并分析。

将sleep(1)改为sleep(10)

运行程序

10s内在新终端 ps

10后再ps

第一次ps命令显示有3个名字中含os2-2的程序,第一行状态为S+,表明当前程序正在睡眠,但可被某些讯号唤醒;第二行状态为Z+,表示该程序应该已经终止;第三行状态为S+,表明当前程序正在睡眠。

第二次PS命令显示有1个名字中含有os2-2的程序,状态为S+,可以看出,这个进程和第一次ps命令的第三行是同一个名字,这行的意思是我们查询的grep命令本身。

实验心得(遇到什么问题,如何解决)

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
怎么样消灭臭虫 臭虫用什么药消... 奔奔虫控|被吸血臭虫骚扰的滋味,你体会过吗?相信被臭虫骚扰过的人都不想再体验一次了吧?那么臭虫应该怎...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...