




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux常用命令实验1 Linux文件与目录的基本使用实验目的1、熟悉Linux的文件和目录1) 掌握Linux文件名通配符的使用。2) 了解Linux系统目录的特点。2、了解Linux文件系统1) 了解Linux文件系统根目录的子目录。2) 了解 /bin目录中的实验学时:2学时实验过程:1文件与文件名(1)Linux的文件名长度可达256个字符,且不能使用如下字符做文件名:!#$n&。()【】、 ;空格(2)Linux文件区分大小写。ABC与abc、Abc、aBc、abc、均不相同。 (3)文件名中如果有多个小数点,则最右边的一个为分隔符。其右边部分往往用于表示文件类型。如:txt,rpm,C。 。2目录homelfengls01txt注意:MD-DOS与LinuxUNIX的分隔符相反。3LinUX文件与目录的部分常用命令(1)ls命令。功能:查看指定目录下的文件和目录。注意:ls是list的缩写,不是is。 命令与参数间、参数与参数间必须用空格分隔。格式: lsoptionsfilenamedirname常用选项说明:-a 显示所有文件和目录,包括隐含文件。-l显示文件的完整信息。-F用在每个文件名的后面或前面添加一个特定的后缀字符的方法指出它的类型。 子目录* 可执行文件 ,无 普通文件开头 隐含文件 -r将文件以相反次序显示(依英文字母次序)。-t 将文件依建立时间的先后次序列出,后建的排在前面。-R若目录下有文件,则其下的文件也依次序列出。Filename/dirname若为文件名,则显示filename指定文件的目录信息;若为目录名,则显示dirname指定目录中的内容;若默认,则显示当前目录中的内容。 范例1:列出目前工作目录下所有名称是s开头的文件,越新的越排后面: ls -ltr S*范例2:将bin目录及文件详细信息列出: ls -1R/bin 范例3:列出目前工作目录下所有文件及目录;目录于名称后加“”,可执行文件于名称后加“*” Is -AF (2)mkdir命令。功能:创建名为dirname的子目录。格式: mkdiroptions(3)rmdir命令。功能:删除目录名为dirllalile的子目录。格式: rmdir (4)cd命令功能:更改当前目录为dimame。格式: cddirname范例1:进入idl目录。 fenglocallaost feng$cd idl fenglocalhost ial$范例2:进入用户tlc的目录。 fenglocalhost feng$cd tlc fenglocalhost-tlc$(5)cp命令。格式1: cp loptions 功能:更名复制,将由source制定名称的源文件复制到dest,并更名为由dest指定的文件名。 格式2: cpoptionssource一 功能:将由sotiree指定的一组源文件复制到由directory指定的目录下。 范例1:文件的改名复制,即复制文件srcf到本地并改名为dstf。 fenglocalhost feng$cp srcf dstf 范例2:复制当前目录下所有文件到tmp目录。 fenglocalhostfeng$cp。map (6)mv命令。 功能:移动一个或一批文件到指定的目录。 格式: mvoptions常用选项说明:-i 若目的地已有同名文件,则先询问是否覆盖旧文件。范例:将所有的C语言程序文件移至Finished子目录中。 mv -i* c Finished(7)rm命令。功能:删除由filenamedirname指定的文件或目录。格式: rm options使用权限:所有使用者。常用选项说明:一i 删除前逐一询问确认。一f 即使原文件属性设为只读,也直接删除,无须逐_确认。一r 将指定目录下的所有文件及子目录一并删除。-d 直接将欲删除的目录的硬连接数据删成0,删除该目录。一v 显示指令执行过程。-help 在线帮助。一一version 显示版本信息。范例1:删除所有C语言程序文件;删除前逐一询问确认。范例2:将Finished,子日录及子目录中所有文件删除。 rm -r Finished 4上机指导 ,观察当前目录如下:fenglocalhost feng$lS一1total40drwxr-xr-x 5feng feng 4096Mar2405:35Desktop-rw-rw-r- 1feng feng 20Mar24 10:18 cmdt-rw-rw-r- lfeng feng 0Mar2409:56 fgo1.txt-rw-rw-r- 1feng feng 92 Mar 24 09:55 jobs01tXt-rw-rw-r- 1feng feng 94Mar24 lO:Oljobs02txt-rw-rw-r- 1feng feng 0Mar24 10:50kilt02tXt -rw-rw-r- 1root root 783 Mar 25 15:56 ls01tXt drwx- 2feng feng 4096 Mar24 09:29 nsmail-rw-rw-r-_ 1feng feng 112Mar2409:42ps01txt-rw-rw-r-一 1feng feng 140 Mar 24 10:02 ps02.txt “-rw-rw-r-_ 1feng feng 3 Mar 24 10:45 -rw-rw-r-一 1feng feng 1777 Mar 24 09:41 top01txt fenglocalhost feng$ 文件目录项由如下内容组成:权限标志,inode的连接数,文件属主的登录名,共享该文件访问的用户组组名,字节数,最后修改日期时间,文件(目录名)。 第1行(drwxr-xrx 5 feng feng 4096 Mar 24 05:35 Desktop)解释如下:-权限标志为rwxrxr-x,inode的连接数为5,文件属主的登录名为feng,共享该文件访问的用户组组名为feng,字节数为4 096,最后修改日期时间为Mar 24 05:35,文件(目录名)为Desktop。fenglocalhost feng$lsaF。 bash logoutbash_history bash_profilegnome,desktop mcnetscape! sawfishICEauthority Xauthoritybashrc emacsgnome_privatekdescreenrc Desktopgnomekdercfenglocalhost feng$28实验2 Vi编辑器的使用和Linux下的编程一. 实验目的学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。二. 实验学时:2时三. 实验内容1.进入和退出vi。2.利用文本插入方式建立一个文件。3.在新建的文本文件上移动光标。4.对文本文件执行删除、复原、修改、替换操作。四.实验步骤 1.vi编辑器 vi是UNIX世界里最通用的全屏编辑器,所有的UN机器都提供本编辑器. UNIX里提供的是vi的加强版-vim,同vi完全兼容。vi的原意是“visual”,即可视编辑器,用户键入的内容会立即被显示出来。学会vi可以让用户在任何一台UNIX机器,无论是SUN、HP、AIx、SGI,还是Linux或FreeBSD上,都可以得心应手地编辑文件。, vi编辑器的使用: (1)进入。只要在命令行上键入vi就可以进入vi的编辑环境,输入“vi文件名”,则vi自动装入文件或开始一个新文件。 “。 vi有两种状态,即编辑状态和命令状态。用户在输入状态下可以输入文字瓷态是用来执行打开文件,存档,离开vi等操作命令。执行vi后首先进入指令状入的任何字符都作为指令来处理vi屏幕的左方出现波浪号“”,代表本行为空 (2)进入编辑状态。以下为相应的指令: 追加(append)。 j a从光标所在位置后面开始追加文字,光标后的文字随追加的文字向后 A从光标所在列最后面的地方开始追加文字。插入(insert)。i从光标所在位置前面开始插入文字,光标后的文字随追加的文字向后移动。I 从光标所在行的第一个非空白字符前面开始插入文字。开始(open),。 o在光标所在行下新增一行并进入输入状态。 O在光标所在行上方新增一行并进入输入状态。 (3)编辑命令:x 删除光标所在字符。dd 删除光标所在的行。r 修改光标所在字符接下来要修正的字符。 。R 进入改写状态,新增文字会覆盖原先文字。s 删除光标所在字符,并进入输入状态。S 删除光标所在的行,并进入输入状态。 (4)从编辑状态退出到命令状态。按Esc键。 。 (5)退出命令。 :q 结束编辑(quit)。如果不想存档而要放弃编辑过的文件则用:q!强制离开。:w存档(write)其后可加所要存档的名。:wq 即存档后离开。 2。Linux下的编程(1)源程序。所谓源程序就是使用程序设计语言编写的程序文本文件,C语言的源程序以:c作为类型名的文件,在Linux中,G源程序可使用Linux的编辑器(2)编译O编译是由编译器将源程序转换为相应的目标程序,编译器只能发现源程序中的语法错误而不能发现语义错误:如果源程序中存在语法错误,编译器会输出出错信息并停止编译,这时需要修改源程序后重新编译,如此反复直至编译器不再发现错误,才得到正确的目标程序。3GCC编译器的使用 在Linux下使用C语言进行编程,使用得最多的编译器为GNU C编译器,简称GCC。这个软件符合自由软件基金会的GPL原则,在各种版本的Linux中都有该编译器。该编译器支持C、c+、ObjectiveC等语言。 GCC编译C源程序并生成可执行文件要经过以下四步: (1)预处理。GCC编译器调用cpp程序,对各种命令如: #define、#include、#iF进行分析。 (2)编译。GCC编译器调用cci程序,根据输入文件产生中间文件。 , 、汇编。Gcc编译器调用as程序,用中间文件作为输入,产生以o作为类型名的目标文件。(4)连接。GCC编译器调用1d程序,将各目标程序组合于可执行文件中的适当位置,这一程序引用的函数也放在可执行文件中。GCC的基本用法:gccoptions filenames(1)有多个选项时,不能只用一个连字符来表达,必须个选项用各自的连字符,如:gcc -P -g test.c和gcc -pg test.c效果不等效。(2)当gcc不带任何选项时,它将c文件编译成一个叫做aout的可执行文件,如:gcc testc输出的文件就为aout。 常用选项如表所示。选项功能一C对源程序进行预处理、编译和汇编,产生目标文件,但不进行连接。每个源程序产生一个目标文件一0文件名定义输出的执行文件名为一S在编译后停止,产生类型名为s的汇编代码文件,不生成中间文件一E在预处理后停止,输出预处理后的源代码至标准输出,不进行编译一0对程序编译进行优化,减少被编译程序的长度和执行时间,但此时的编译速度比不做优化慢且要求较多的内存一02比-O优化效果更好,但编译速度较慢一g产生一张用于调试和排错的扩展符号表,以便用qu的调试程序gdb进行调试例如,helloc源程序如下: #include main() printf(Hello World!); 编译: gcc一0 hello helloc .hello4调试源程序当编译后得到的目标程序在运行中出现故障时, 需要对源程序进行调试以找出错误,排除故障。LINUX提供了调试源程序的工具GCB,GCB不仅允许用户运行程序时显示源代码,而且在调试过程中允许在预设的断点处暂停程序的运行,显示变量的内容。下面介绍gdb的基本使用方法。在shell提示符下键入命令“gdb”,则启动gdb 并等待由文件名指定的目标程序文件,并给出gdb的提示符:“(gdb)”。 在gdb的提示符下,键人命令“q(或quit) gdb中的常用命令如表所示。命令功能R(run)运行程序P(或print变量)显示变量内容P(或print&)显示变量地址where显示函数的调用情况及使用的参数Info locals显示已定义的变量和参数1行号)(或list)显示指定行号开始的源代码I或fist显示函数中的源代码lnfo break列出所有的断点d(或deletel删除所有断点 注意:在使用GCB调试程序前,必须使用gccg对源程序进行编译。 5运行源程序 经调试排错后目标程序即可正常运行,并产生就有的的正确结果。运行目标程序的方法是shell提示符下键入目标程序的绝对路径和目标程序名。 6上机指导(1)建立C源程序文件demon程序内容如下 main()int I,j,k; i=4: d0 for(j=o;ji-1;+j) printf(“ “); for(k=0;k0); 用vi编辑器建立C源程序文件demoC的方法如下:键入命令“vi democ”,启动vi;按命令“i”,进入Vi的插入状态;输入程序内容;按Esc键,再键入“:”,切换到vi的命令状态;最后键入命令“wq”,保存文件内容后退出vi。至此,c源程序文件starc已建立。(2)编译成可调试的可执行文件如下:fenglocalhost demo$gcc g -O demo democfenglocalhost demo$ls -1total20 fenglocalhost demo$(3)程序的运行效果如下:【fenglocalhost demo】$./demo*实验3 Linux的进程管理一实验目的:1. 掌握监视系统的几个Linux基本命令: PS-查看系统的进程 tty-查看当前使用的终端 df-查看系统的文件系统的空间使用情况 du-查看具体某个文件和目录的磁盘空间的占用情况 free-查看使用的内存资源的情况2. 掌握Linux下的联机帮助手册的使用3. 掌握Linux命令的简要帮助的获取方法4. 掌握一些其他常用的Linux命令: cal-显示日历 date-显示系统的日期和时间 clear-清屏 find-查找文件 uname-查看系统信息 who-查看其他登录的用户 which-查看命令的全路径 二实验学时:2学时三实验内容:1.使用ps查看系统的进程运行情况,使用不同的命令选项并比较显示结果的差别;查看当前系统已安装的文件系统的空间使用情况;查看用户的家目录占用了多少空间;查看使用的内存资源的情况.2.查看ls命令的详细使用方法,查看ps命令的详细使用方法.3.获取ls命令的简要帮助信息,获取ps命令的简要帮助信息.4.用cal命令显示日历,用date命令显示系统的日期和时间,用clear清除屏幕,用find命令在系统中查找文件ch1.doc,用uname命令查看系统的信息,用who命令查看其他登录的用户,用which命令查看一些命令的全路径,用tar命令来压缩test目录下的所有后缀为doc的文件到文件doc.tar.gz中,将doc.tar.gz复制到用户的家目录并展开压缩文件.四实验步骤:1几个主要命令(1)ps命令。功能:显示正在执行的进程的信息。格式:ps optionspids常用选项;-l 以长列表的形式列出。-a 显示其他用户的进程。-e 显示环境。-r 只显示正在运行的程序。栏目说明: 、 UID 用户的标识号。PID 进程的标之射争,是系统赋予每个正在执行的进程的惟一编号。PPID 父进程的标识号。PRI 进程优先级。 ;SIZE 虚拟内存大小。RSS 驻留空间大小。STAT 进程状态。(注:R一进程正在运行;s睡眠;D不可中断睡眠; T-停止或跟踪;Z-僵尸进程;W一没有驻留页。)TTY 进程所在的虚拟终端号。 TIME 该进程已经运行的时间。COMMAND 该进程的名称。(2)jobs命令。功能:列出当前正在运行的作业信息,该命令没有选项和参数。格式:jobs(3)kill命令。功能:终止(或撤销)-个进程。格式: killoptionspid常用选项:一1 输出信号名列表。一p 指kill只输出已命名pid,而且不送信号给它。一s 指出欲发出的信号,信号是以信号名或数字给出的。(4)nice命令。功能:通过修改调度优先级来运行一个程序。 格式: niceoptions:COMMANDarg常用选项:一n 加上由指定的优先级而不是默认值10。一version 输出版本信息(5)&命令。功能:将进程放到后台运行。方法:在要运行的程序命令的最后加上“”字符。例子:yesdevnull yes命令项标准输出发送无穷尽的一串y。devnull像一个黑洞,任何被送入这个黑洞的数据都会消失。 【rootlocaUaostroot】#yesdevnull& 1164 rootlocalhost,# 1 yes的作业号 。, 164进程标识号 “ (6)作业控制。 前后台作业控制。前台作业是指正在对其进行交互操作的作业。在同一时刻只能由一个作业在前台运行。 后台作业是指不接收终端的输入,不需要进行交互操作,而只是默默运行的作业。 将前台作业放到后台。 。 , 例如,对2号作业。 bg2 ,: 另法:用Ctrl+z终止该作业,在Shell提示符下键入命令bg.再切换到前台用命令。 将后台作业放到前台。 例如:对2号作业 。 , fg 2 。 挂起作业和撤销作业。挂起作业只是暂时终止该作业的运行,用户需要它时可以在前台或后台恢复它的运行,用Ctrl+z。撤销是指终止该作业。例如,直接撤销l号作业,用kill1。或用进程号PID撤销:kill 164。指定时间运行作业at。功能:在一个特定的时间执行作业或删除队列中的文件。格式: at-v-q队列-f文件名-mldbv时间常用选项: 一v 显示版本号。一f 从指定文件名的文件中读取作业。一l 列出用户排在队列中的作业。时间形式:HHMM或HH:MM,MMDDYY,MMDDYY或MM,DDYY,(7)观察系统动态的进程控制和进程调度的工具top。功能:显示系统动态的进程控制和进程调度,还可查看内存动态使用的实时信息。格式: topoptions字段说明:uptime 显示系统已运行时间和系统的三个加载均值,加载均值是指那准备在1分、5分、15分内运行的进程的平均数。Process 显示在最近一次更新是运行的进程总数并做分类,可通过交互命令t来切换进程和状态显示。CPUstates 显示在用户模式下的CPU利用的百分比、系统方式、优先级任 务(优先级任务是指那些优先级为负的)和空闲任务。Mem 显示内存使用的统计,包含总的可用内存、空闲内存、已用内存、共享内存和用于缓存的内存。可通过交互命令m来切换内存信息显示。Swap 显示对交换空间的统计,包含总的交换空间、可用交换空间和已用交换空间。PID 进程的标识号,是系统赋予每个正在执行的进程的惟一编号。父进程的标识号。PPID 父进程的标识号UID 用户的标识号USER 显示任务所有者的用户号。PRI 进程优先级NI 显示任务的nice值SIZE 虚拟内存大小。TSIZE 显示任务的代码大小。DSIZE 显示数据加上堆栈的大小,但对ELF进程不显示。TRS 显示文本驻留空间的大小。SWAP 显示此任务使用的交换空间的大小。D 显示脏页的大小。 ” , - LIB 显示使用的库页的大小,对ELF进程也无效。RSS 显示被任务占用的物理内存的总量(以KB计)。SHARE 先时任务占用的共享内存的量。 、STAT 进程状态。(注:R进程正在运行S睡眠;D不可 中断睡眠;T-停止或跟踪;Z-僵尸进程;W没有驻 留页。)TTY 进程所在的虚拟终端号。TIME 该进程已经运行的时间。COMMAND该进程的名称。交互命令:空格键 立即更新显示。i 不显示空闲的或僵尸进程信息。n或# 改变显示的进程数量。q 退出top。r 重新调整一个指定进程的优先级。f或F 在显示时加上或移去字段。o或O 改变显示字段的顺序,m 切换内存信息的显示。t 切换进程和CPU状态的显示。 (8)grep命令。 功能:用于查找字符串。 格式: grep选项字符串文件列表 常用选项: 一i 不区分大小写。 -1 只显示相应的文件名。 范例1:检查Apach Web服务器是否在运行。 $ps -1 | grep httpd 范例2:显示mary用户的有关信息。 $grep mary etcpasswd 范例3:检查mary是否已登录。 $who | grep mary 2上机指导 (1)显示系统正在执行的进程的信息。 现在后台运行一个作业“yesdevnull”,在sheLL提示符下键入命令“yesdevnull&”。屏幕显示如下: fenglocalhost user2$yesdevnull& 19168 fenglocalhost user2$我们观察到该作业的PID为9168,表正在执行的进程的信息。 PID T,IY TIME CMD明后台运行成功。键入“ps”命令,显示系统 956 tty2 00:00:00 bash 9168 tty2 00:05:47 yes 9194 tty2 00:00:00 ps(2)在前台驱动一个作业并将它放到后台运行。 在前台启动一个作业:fenglocalhost user2$Dyes/DEV/NULL fenglocalhost user2$jobs (jobs命令显示进程的运行)1一Running yesdevnull&2+Stopped yesdevnullfenglocalhost user2$键入命令“fg2”将作业2重新放到前台运行,再按Ctrl+Z终止正在运行的进程。 fenglocaUaost user2$fg2yesdevnull2+ Stopped yesdevnull fenglocalhost user2$键入命令“bg”将当前作业放到后台运行,并用jobs命令显示进程的运行状态。fenglocalhost user2$bg2+stopped yesdevnullfenglocalhost user2$jobs1- Running yesdevnull&2+ Running yesdevnull& fenglocalhost user2$(3)撤销正在运行的作业。键入命令“ps”显示正在执行的进程的信息。fenglocalhost user215 ps PID TTY TIME CMD 956 tty2 00:00:00 bash 9205 tty2 00:06:27 yes 9207 tty2 00:01:39 yes 9226 try2 00:00:00】ps fenglocalhost user2$ 键入命令“kill l”撤销正在运行的作业【1】,并用jobs命令显示进程的运行状态。 fenglocalhost user2$kill1 fenglocalhost user2$jobs 1一Terminated yesdevnull& 2+ Running yesdevnull& fenglocalhost user2$ 键入命令“kill 9207”撤销正在运行的作业2,并用jobs命令显示进程的运行状态。 fenglocalhost user2$kill 9207fenglocalhost user2$jobs 2+ Terminated yesdevnull& fenglocalhost user2$ 键入命令“ps”显示正在执行的进程的信息,可见除进程ps和bash以外的所有进程已被撤销。 fenglocalhost user2$ps PID TTY TIME CMD956 try2 00:00:00bash 9226 tty2 00:00:00 ps fenglocalhost user2$ (4)定时启动一个作业并查看作业运行的结果。 键入“catwork”建立作业文件,输入要启动的作业命令,按“Ctrl+D”结束键盘t输入。 fenglocalhost user2$catwork ls -i date fenglocalhost user2$ 键入命令“date”显示当前时间,然后键入命令“at-fwork 1809+5 minutes”,在5分钟后运行作业。fenglocalhost user2$datefenglocalhost user2$at-f work 1809+5 minutestotal20一rwxrwxr-x 1 feng feng 11821 Feb 13 21:01 demo-rwrWr_一 1 feng feng 160Feb 13 21:01 democ-rw-rw-r- 1 feng feng 26Feb 13 21:02g01Axt -rw-rw-r- 1 feng feng 0Feb 1321:07 g02txt Wen Oct 8 18:14:52 CST 2003 fenglocalhost user2$(5)使用top命令。9:41am up 28mill,2users,loadaverage:l.22,126,07348 processes:46 sleeping,2 running,0 zombie,0 stoppedCPU states:33Ouser,91system,00nice577idleMem: 62872K av,41400K used, 21472K free,8308K shrd,1740K buffSwap:297160K av, 7308K used,289852K free 25020K cachedSIZE RSS SHARE 0 504 504 424 0 1028 1028 816 O 116 76 60 0 0 0 0 0 0 0 O 0 0 0 0 0 0 0 020 0 O 0 0 0 0 0 0 220 168 144 0 404 400 0 0 92 0 O 0 0 O 0 0 0 O 0 0 0 112 112 0 64 0 0 0 128 48 32 0 0 128 24MEM TIME COMMAND08 4:41 yes16 0:00 top01 0:06:init00 0:00 kflushd00 0:00 kupdate00 0:00 kpiod00 0:00 kswapd00 0:00:mdrecoveryd00 0:00 khubd02 0:00 syslogd06 0:00 klogd0:00 portmap r0:00 lockd0:00 rpciodO1 0:00 rpcstatd 0:00叩md 、0:00 automounl:00 0:00 iCPU983190000000O0000000O000O0O00000OOO0OSTATRRSSWSWSWSWSWSWSSSW 00SW 0OSW 000 S、SW 00SW 0O20 SPID USER Pri NI 9168 feng 13 9191、fleng 1 1 root 0 2 root 0 3 root 0 4 root 0 5 root 0 6 root一20 6 root 0 296 root 0 306 root 0 321 rpc 0 337 root 0 338 root 0 348 rpcuser 363 root 0 414 root 0 467 nobodydentd,实验4 进程调度(实验学时 2学时)1目的和要求进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。2实验内容设计进程控制块PCB表结构(与实验一的结构相同),分别适用于优先数调度算法和循环轮转调度算法。建立进程就绪队列。对两种不同算法编制入链子程序。编制两种进程调度算法:1)优先数调度;2)循环轮转调度3实验环境同实验一4实验提示本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。在优先数算法中,优先数可以先取值为98,进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。对于遇到优先数一致的情况,采用FIFO策略解决。#include#include #include#include#include#define P_NUM 5#define P_TIME 50enum stateready,execute,block,finish;struct pcbchar name4;int priority;int cputime;int needtime;int count;int round;state process;pcb * next;pcb * get_process();pcb * get_process()pcb *q;pcb *t;pcb *p;int i=0;coutinput name and timeendl;while (iq-name;cinq-needtime;q-cputime=0;q-priority=P_TIME-q-needtime;q-process=ready;q-next=NULL;if (i=0)p=q;t=q;elset-next=q;t=q;i+; /whilereturn p;void display(pcb *p)coutname cputime needtime priority stateendl;while(p)coutname;cout ;coutcputime;cout ;coutneedtime;cout ;coutpriority;coutprocess)case ready:coutreadyendl;break;case execute:coutexecuteendl;break;case block:coutblockendl;break;case finish:coutfinishnext;int process_finish(pcb *q)int bl=1;while(bl&q)bl=bl&q-needtime=0;q=q-next;return bl;void cpuexe(pcb *q)pcb *t=q;int tp=0;while(q)if (q-process!=finish)q-process=ready;if(q-needtime=0)q-process=finish;if(tppriority&q-process!=finish)tp=q-priority;t=q;q=q-next;if(t-needtime!=0)t-priority-=3;t-needtime-;t-process=execute;t-cputime+;void priority_cal()pcb * p;p=get_process();int cpu=0;while(!process_finish(p)cpu+;coutcputime:cpuendl;cpuexe(p);display(p);printf(All processes have finished,press any key to exit);getch();void display_menu()coutCHOOSE THE ALGORITHM:endl;cout1 PRIORITYendl;cout2 ROUNDROBINendl;cout3 EXITendl;pcb * get_process_round()pcb *q;pcb *t;pcb *p;int i=0;coutinput name and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产法规能力测试题集
- 2025年安全生产实践判断题及答案
- 草坪园艺技术使用中常见问题解决方案
- 2025年安全生产安全风险评估师考试重点题库答案
- 2025年平面设计师职业技能鉴定试题及答案解析
- 2025年媒体艺术设计师职业资格考试试题及答案解析
- 2025年无人机配送员初级题集
- 2025年客服招聘笔试模拟题集
- 2025年安全员C类考试核心模拟题集
- 2025年环境保护专家知识检测试题及答案解析
- 2025年建筑工程-安全员C证-安全员(C证·上海)历年参考题库典型考点含答案解析
- 光伏项目施工组织设计方案
- 2025政府采购评审专家入库题库与答案
- 2025至2030医学混合成像系统行业产业运行态势及投资规划深度研究报告
- 2025年内蒙古交通集团考试笔试试题(含答案)
- 低压安全隐患排查
- 学堂在线 高技术与现代局部战争 章节测试答案
- 水费收缴使用管理办法
- 《研学旅行指导师实务》课件-第1章 研学旅行指导师职业基础
- 企业合规教学课件
- 实验室质量监督培训
评论
0/150
提交评论