目录
一、实验内容
二、实验过程
三、相关知识
1.shell
2.多进程并发执行
3.后台执行
4.分时系统
5.批处理
6.执行时间
7.系统态时间
8.用户态时间
在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。我们就先实现第一种情况:
这个实例实际上就在上面基础上多加了一个后台执行&符号,此时应该是5个循环任务并发执行,最后需要3s左右时间。
请写实验报告,包括你对shell的认识,对多进程并发执行的认识,对后台执行的认识,对分时系统的认识,对批处理的认识,对执行时间、系统态时间和用户态时间的认识等等。
1、首先在根目录下创建名为test.sh 的文件,并使用vim打开文件进行编辑
2、输入相应程序后,按ESC 键退出编辑模式,然后输入:wq退出vim
#!/bin/bash:通常都作为shell脚本的开头;其中的#!'在此处作为一个特殊符号,后面紧接的是脚本解释器的路径,在书写正确的前提下,不同的路径代表不同类型的shell 解释器。
该段代码的含义是休眠1秒,然后输出"done!"执行五次。
3、输入命令time bash test.sh,得到相应实验结果
这种情况下,程序顺序执行,由图中可以看出执行时间是5.014s。
4、进行第二个程序实验时,输入vim test.sh 进入vim模式进行编辑,修改第一个例子的代码,然后保存退出
&的作用是将此进程放到后台执行;wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用wait可以在 bash 脚本"多进程"执行模式下,起到一些特殊控制的作用。
5、再输入命令 time bash test.sh,得到相应实验结果
此时应该是5个循环任务并发执行,由图中可以看出执行时间是3.009s,比之前快了
6、结论
使用多进程的思想进程进程的管理,辉大大减少时间消耗。而通过最少的时间消耗达到与单线程执行的同样的事情。
(1)Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
(2)UNIX/Linux操作系统下的Shell 既是用户交互的界面,也是控制系统的脚本语言
(3)UNIX/Linux 中比较流行的常见的Shell有bash、zsh、ksh、csh等等,Ubuntu终端默认使用的是 bash。
使用后台任务来实现任务的“多进程化”,让所有任务都同时执行,消除计算机部件之间的互等现象,以提高系统资源利用率。
(1)概念:当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,为了使用户看不到这些进程的运行,也就是说在后台运行。(比如当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上&实现后台运行)
(2)特点:
(1)多用户交互操作系统:在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过主机的终端,以交互方式使用计算机。
(2)分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。
(3)主要分为三类:
(1)定义:批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。
(2)常见批处理:DOS批处理、PS批处理
(3)文件扩展名为bat
(4)Windows常用批处理命令:
一个进程从开始运行到结束运行后,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。
运行状态下系统空间的时间,即进程获得CPU资源后在内核态的执行时间。
运行状态下的用户空间时间,即用户的进程获得了CPU的资源后,在用户态执行的时间。