ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

操作系统进程实验一

2021-04-06 21:32:43  阅读:197  来源: 互联网

标签:状态 firefox 操作系统 pstest 实验 进程 CPU 运行


操作系统进程实验一

一、实验目的:

理解进程定义:进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。
程序与进程的区别:程序是静态的,是一些指令的有序集合。进程是动态的,是程序的执行过程,包括动态创建、调度和消亡的整个过程。一个程序可以被执行多次,可以对应多个进程。
理解进程状态:进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态:运行态、就绪态、阻塞态。实际操作系统中都超过三种状态,例如Linux操作系统中一般有6种状态。

二、实验内容:

  1. 使用各种系统命令查看进程的相关信息
  2. 使用进程的创建函数、退出函数

三、实验步骤:

第1步 感受进程的存在,观察进程的状态。
在这里插入图片描述
在这里插入图片描述部分列标题含义
USER:用户
PID:进程号
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
STAT:进程状态 例如S 处于休眠状态;R 正在运行;Z 僵尸进程不存在但暂时无法消除
COMMAND:命令

通过多次运行ps aux命令,观察如下现象:
(1)进程号不重复,唯一。
(2)进程状态:多种
(3)1号进程的命令init不变

第2步 在终端输入top,回车,查看动态进程信息。在这里插入图片描述
使用下列命令更新top
按下P:按%CPU排序
按下M:按%MEM排序
按下空格:马上刷新(默认3秒)
按下q:退出(默认的top会一直占用当前端口)
按空格手动刷新,按P实现按%CPU排序,观察现象:
(1)观察大部分情况下只有一个进程处于R状态,大部分情况下CPU的占用率都不高,意思是CPU比较闲。在单核CPU中,某一个时刻只能有一个进程占用CPU即处于运行态R,操作系统书上的理论都是指的单核CPU。
(2)但实际中是多核的CPU,所以实际中应该有一个时刻运行多个进程的情况即并行。使用top命令动态观察是否有出现两个及以上的进程处于R态,并捕捉类似的截图。

在这里插入图片描述
(3)进程号不重复,唯一。
第3步 利用管道增加条件查询
(1)ps aux | grep init,多次执行得到的结果都是init的进程号是1号。
在这里插入图片描述
(2)启动firefox后,查询firefox对应的进程号是多少?
在这里插入图片描述
3)关闭firefox,再启动后,查询firefox对应的进程号是多少?两次进程号一样吗?在这里插入图片描述
第4步 自己编写程序测试,一个程序可以对应多个进程。
(1)编写测试程序:pstest.c
在这里插入图片描述
(2)编译测试程序
在这里插入图片描述

(3)开始测试
打开3个终端,都运行这一个程序,再打开第4个终端查询这个名字的进程有几个,会发现有3个进程号不同的进程,而最后一列却是同一个可执行文件。
在这里插入图片描述

第5步 kill -9 进程号,杀死上一题创建的进程./pstest,要先查询进程号。
在这里插入图片描述

第6步 使用proc文件系统查看进程信息
Proc只存在于内存当中,它以文件系统的方式提供应用程序访问系统内核数据的操作接口。Proc动态地从系统内核读出所需要信息并提交给应用程序。
(1)运行/home/tarena/pstest文件,打开另一个终端观察ls /proc中有一个它的进程号文件夹。
在这里插入图片描述

(2)如果使用kill杀死pstest对应的进程,则/proc下对应的进程号文件夹也消失
在这里插入图片描述

(3)cat /proc/self/status 查看系统当前进行状态,状态信息非常的多,相当于是进程控制块PCB的内容。
在这里插入图片描述

第7步 使用进程的创建函数、退出函数编写程序
在这里插入图片描述

第8步 测试程序截图
在这里插入图片描述

标签:状态,firefox,操作系统,pstest,实验,进程,CPU,运行
来源: https://blog.csdn.net/weixin_46493816/article/details/115470983

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有