




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 Linux系统熟悉与使用Linux有两种不同的含义。从严格的技术定义讲,Linux指的是开放源代码的Unix类操作系统的内核。然而,目前大多数人用它来表示以Linux内核为基础的整个操作系统。从这种意义讲,Linux指的是开放源代码的,包含内核、系统工具、完整的开发环境和应用的Unix类操作系统。它是一个支持多用户, 多进程,实时性好的功能强大而稳定的操作系统。它可以运行在x86 PC,Sun Sparc,Digital Alpha,680x0,PowerPC, MIPS等平台上,可以说Linux是目前运行硬件平台最多的操作系统.,但是它主要还是面向Intel PC硬件平台。 所以也可以这样的说:Linux是Unix在Pc机上的完整实现。一、 进入系统和注销系统 1.1 远程登录【指令】telnet,rlogin 【格式】 telnet hostname(远程主机名)telnet ip-address(远程主机的IP地址)rlogin hostname -1 username 【示例】 % telnet hostname% telnet 1 % rlogin hostnam 远程登录到主机 hostname上% rlogin hostname -l user 使用user帐号进入主机hostname(可利用指令arp hostname 或 arp domain_name 查询远程主机的IP地址)【附注】登录步骤 login : _ 输入用户名 password : _ 输入用户密码 1.2 更改帐号密码【指令】passwd 【格式】passwd user 【示例】修改root口令 # passwd 执行后将显示以下信息: New UNIX password: _ 输入新密码 Retype new password: _ 再输入一次新密码 1.3 注销系统【指令】logout,exit和 【示例】% logout % exit% 二、 目录、文件常用指令 2.1 列出目录内容 【指令】ls 【格式】ls -atFlgR name (name可为文件名或目录名) 【示例】 % ls 列出当前目录下的文件名% ls -a 列出包含以起始的隐藏文件所有文件名% ls -t 依照文件修改的时间顺序,依序列出文件名 % ls -F 列出当前目录下的文件名及其类型。/ 结尾表示为目录名称,* 结尾表示为执行文件, 结尾表示为 symblic link % ls -l 列出目录下所有文件之许可权、拥有者、文件大小、修改时间及名称 % ls -lg 同上,并显示出文件的拥有者群组名称 % ls -R 显示出目录下、及其所有子目录的文件名 【附注】可使用通配符*和?来代替文件名或部分名称。 *可以代替一个字符串,?只能代替一个字符。 2.2 显示当前的工作目录【指令】pwd 【示例】 % pwd 2.3 阅读文件内容阅读文件内容 【指令】cat,more 【格式】cat filename more filenamecat filename | more 【示例】% cat file1 以连续显示方式查看文件file1的内容 % more file1 以分页方式查看文件名 file1 的内容 % cat file1 | more 同上 2.4 改变工作目录【指令】cd 【格式】cd name (name可为目录名、路径或目录缩写) 【示例】 % cd 改变目录位置,至用户 login 时的起始目录% cd dir1 改变目录位置,至目录 dir1下 % cd user 改变目录位置,至用户的起始目录 % cd . 改变目录位置,至当前目录的上层 % cd ./user 改变目录位置,至相对路径 user的目录位置下% cd /./. 改变目录位置,至绝对路径的目录位置下 【附注】目录的缩写含义 用户 login 时的起始目录 username 指定某位 user 的起始目录 . 当前的工作目录 . 当前目录的上一层目录 2.5 拷贝文件【指令】cp 【格式】cp -firP source destination 【示例】 % cp file1 file2 将文件file1 复制成 file2 % cp file1 dir1 将文件file1 复制到目录 dir1 下的 file1 文件 % cp /tmp/file1 . 将目录 /tmp 下的文件file1 复制到当前目录下 % cp /tmp/file1 file2 将/tmp 下的文件file1 复制成当前目录下的 file2% cp -r dir1 dir2 将目录dir1整个复制给目录dir2 【附注】其它选项 -r 如果拷贝源是一个目录,则该目录下的子目录与文件都会被复制 -f 在有可能覆盖原有文件时不发出警告(默认) -i 复制过程会覆盖原有文件时,提示要求用户确认 -P 副本文件会保留源文件的属性、权限和最新被存取/修改的时间 2.6 链接文件【指令】ln 【格式】ln oldname newname【示例】% ln file1 file2 将名称 file2,连结至文件 file1% ln -s file3 file4 将名称file4连结至文件file3 【附注】-s选项表示要建立符号链接 2.7 移动文件/文件重新命名【指令】mv 【格式】mv -fi source destination 【示例】% mv file1 file2 将文件file1,更名为 file2 % mv file1 dir1 将文件file1移到目录dir1下,文件名不变% mv dir1 dir2 将目录 dir1整个移到目录 dir2 下 【附注】其它选项 -f 在有可能覆盖原有文件时不发出警告(默认)-i 在有可能覆盖原有文件时发出警告,要求用户确认 2.8 建立新目录【指令】mkdir【格式】mkdir directory-name 【示例】 % mkdir dir1 建立一新目录 dir1。 2.9 删除目录或文件【指令】rmdir,rm【格式】rmdir directory-name rm -fir filename|directory-name 【示例】% rmdir dir1 删除目录dir1(dir1必须为空目录) % rm -r dir1 删除目录 dir1及其下所有文件及子目录 % rm file1 删除文件file1 % rm file? 删除文件名为五个字符且前四个字符为file 的所有文件 % rm f* 删除文件名以 f打头的所有文件 【附注】其它选项 -r 用于删除目录 -i 删除文件时显示详细的提示 -f 删除文件时不作任何提示 三、 常用系统命令3.1 联机使用手册查询【指令】man 【格式】man -t -M path -K keyword command-name 【示例】 % man ls 【附注】其它选项 -t 用troff编排手册内容 -M path 如果联机帮助不在/usr/man目录下,则必须指定路径path -K keyword 用于查找相关指令 3.2 显示和设定系统时间【指令】date 【格式】date mmddhhmm yy +format 【示例】 % date 显示当前的日期与时间 % date 10080045 系统时间被定为Oct8,12:45AM % date +DATE: %m/%d/%N; date +TIME: %H:%M:%S 屏幕显示如下信息: DATE: 08/06/99 TIME: 14:45:05 3.3 查看系统中的用户【指令】who,finger 【格式】who finger username 3.4 用户切换【指令】su 【格式】su username 【示例】 % su user 进入用户 user 的帐号 passwrod: 输入用户 user 的密码 3.5 查看用户名【指令】whoami 【格式】who am i (查看登录时,自己的用户名)whoami (查看当前用户名,若已执行过 su命令则显示此用户的用户名) 3.6 查看登录到当前系统的所有网络用户【指令】rusers 【格式】rusers(结束)3.7 显示文件或目录占用的磁盘空间 【指令】du 【格式】du -s -a directory 【示例】% du dir1 显示dir1目录及其子目录的容量(以 K byte 为单位) 【附注】其它选项 -s 只显示设定文件的容量 -a 可一一显示多个文件的磁盘量 3.8 查询文件系统可用空间【指令】df 【格式】df -i -t type filesystem 【示例】% df 显示当前所有文件系统的使用情况: Filesystem kbytes userd avail capacity Mounted on /dev/ipOa 7445 4714 1986 70% / /dev/ipOg 42277 35291 2758 93% /usr . 【附注】其它选项 -k 文件空间以K-bytes为单位 -i 显示可使用的inode的统计数目 -t 仅打印所指定文件系统的统计数目 3.9 设定文件读写权限【指令】chmod 【格式】chmod -R mode name 【示例】% chmod 755 dir1 将目录dir1设为任何人都可读取、执行,但只有拥有者可修改 % chmod 700 file1 将文件file1设为只有拥有者可以读、写和执行% chmod o+x file2 为文件file2的拥有者增加可执行的权限 % chmod g+x file3 为文件file3的所属群组用户增加可执行权限 % chmod o-r file4 除去其它用户对文件file4的可读取权限 【附注】 name 可为文件名或目录名 mode 可为 3 个 8 位元之数字,或利用ls -l 命令,列出文件或目录的读、写、执行允许权限的文字缩写 mode : rwx rwx rwx r:read w:write x:execute user group other 缩写:(u) (g) (o) 3.10 设定文件或目录的所有权【指令】chown 【格式】chown -R username name 【示例】% chown user file1 将文件 file1改为user用户所有 % chown -R user dir1 将目录dir1及下属所有文件和子目录改为user用户所有 3.11 检查自己所属群组的名称【指令】groups 【格式】groups user 【示例】 % groups 3.12 设定文件的组属关系【指令】chgrp 【格式】chgrp -R groupname name 【示例】% chgrp group1 file1 将文件file1的群组拥有权改为 gourp1 群组% chgrp -R group1 dir1 将目录dir1及其下所有文件和子目录,改为group1群组 3.13 文件中字符串查寻【指令】grep 【格式】grep string-name file 【示例】 % grep abc file1 查找文件file1中字串 abc 所在行的内容 3.14 查寻文件或命令的路径【指令】whereis,which,whatis,find 【格式】whereis command (显示给出命令的路径) which command (显示给出命令的路径及用户定义的别名)find search-path -name filename -print (从给定路径下查找文件,并显示路径 ) 【示例】 % whereis date 显示指令date的路径 % find / -name file1 -print 从根目录下开始查找文件file1 3.15 比较文件或目录的内容【指令】diff 【格式】diff -r name1 name2 (name1 name2可为文件名或目录名) 【示例】% diff file1 file2 比较文件file1与file2内各行的不同处% diff -r dir1 dir2 比较目录 dir1 与 dir2 下各文件的不同处 3.16 更新文件或目录的最后修改时间【指令】touch 【格式】touch name (name可为文件或目录名称) 【示例】 % touch filname 3.17 检查网络是否正常【指令】ping【格式】ping hostname 或 ping IP-Address【示例】 % ping hostname (hostname为远程主机名) 3.18 文件传输【指令】rcp 【格式】rcp -r source hostname:destination (source为文件名、目录名或路径,hostname为主机名,destination为路径) rcp -r hostname:source destinatio ( hostname为主机名,source 为路径,destination为文件名、目录名或路径 ) 【示例】% rcp file1 hostname:/home/user 将文件file1拷贝到主机hostname的/home/user目录下 % rcp -r dir1 hostname:/home/user 将目录 dir1拷贝到主机hostname的/home/user目录下 % rcp hostname:/home/user/file1 file2 将主机 hostname的/home/user/file1文件拷贝到当前主 机的当前路径下,文件名改为file2 % rcp -r hostname:/home/user/dir1 . 将主机hostname的目录/home/user/dir1拷贝到当前主机的当前目录下,目录名不变 3.19 文件传输协议 【指令】ftp 【格式】ftp hostname or ftp ip_address 【示例】% ftp hostname 与远程主机 hostname进行文件传输 Name (hostname:user-name) : 输入帐号 Password (hostname:user-name): 输入密码 ftp hel 列出 ftp 文件传输可使用的所有命令 ftp !ls 列出本地主机当前目录下的所有文件 ftp !pwd 列出本地主机当前路径 ftp ls 列出远程主机当前目录下的所有文件名 ftp pwd 列出远程主机当前路径ftp cd dir1 将远程主机的工作目录位置改至 dir1目录之下ftp get file1 将远程主机当前目录的文件 file1拷贝到本地主机当前目录中 ftp put file2 将本地主机当前目录的文件 file2拷贝到远程主机当前目录中 ftp mget *.c 将远程主机当前目录所有的*.c文件拷贝到本地主机当前目录中 ftp mput *.txt 将本地主机当前目录所有的*.txt 文件拷贝到远程主机当前目录中ftp prompt 切换交谈式指令 ftp quit 结束 ftp 工作 ftp bye 同上 3.20 与其它系统的用户对话【指令】talk 【格式】talk usernamehostnametalk usernameIp_address 【示例】1. 可先利用 rusers 指令查看网上的现有用户 2. 假设主机 indian 上的用户 u84987要与 hostname 上的用户 u84123 对话:% talk u84123hostname 此时屏幕上将会出现等待画面 在对方(u84123)屏幕上将会出现下列讯息 Message from Talk_DaemonLocal_host_name at xx:xx talk: connection requested by u84987indian talk: respond with: talk84987indian 此时对方(u84123) 必须执行 talk u84987indian 即可互相对话3最后可按结束 四、 文件编辑器 vi 的使用方法简介 【介绍】 在系统提示符下运行vi命令,此时屏幕会出现 vi编辑屏幕,同时在缓冲区中复制文件。 Vi 编辑的是缓冲区中的副本文件,当编辑完成后,用户有权决定是否要取代原有文件。vi 的操作模式有两种,输入模式和指令模式。【进入vi】% vi filename 直接编辑文件% vi file1 file2 . . . 同时编辑多个文件% vi -r filename 恢复编辑时被中断的文件 【离开vi】 按ESC键进入指令模式后,选用下列指令离开vi编辑窗:q! 不存盘,立即退出vi编辑窗 :wq 存盘,退出vi编辑窗 :ZZ 同wq :x 同wq :w 存盘,但并不退出vi :q 退出vi编辑窗,若文件被修改过,则会自动提示是否存盘 【进入输入模式】 a 把内容附加在光标之后 A 把内容附加在行末 i 把内容附加在光标之前 I 把内容附加在行首 o 在光标所在行之下新增一行 O 在光标所在行之上新增一行 【退出输入模式】 按ESC键退出输入模式【光标的移动指令】 指令如下: h 向左移一个字符 j 向下移一行 k 向上移一行 l 向右移一个字符 0 移至该行之首$ 移至该行之末 移至行头 H 移至屏幕最上端 M 移至屏幕的中间 L 移至屏幕底端 G 移至文件未 + 移至下一行首 - 移至上一行首 ( 移至上一句首 ) 移至下一句首 移至上一段首 移至下一段首 nG 移至文件的第 n 行 【屏幕移动指令】 屏幕下翻一页 屏幕上翻一页 屏幕下翻半页屏幕上翻半页 【删除指令】dO 删除到光标所在行首 dw 删除到光标所在单词结尾 d3w 删除到第三个单词末 dW 删除到下一空格处 db 删除到上一空格处 dd 删除当前行 ndd 删除从当前行开始n行(向后删除) dL 删除到屏幕上的最后一行 dH 删除到屏幕上的第一行 dG 从光标所在处删除至文件尾 x 删除光标所在该字符X 删除光标所在的前一字符 【修改指令】cc 修改当前行 cw 修改到字末 【搜索指令】 /字串 从光标所在处向后查找字符串 字串 从光标所在处向前查找字符串 n 向下继续查找 N 向上继续查找 【移动、复制和撤消指令】y 将文本复制到缓冲区nyy 把n行文本复制到缓冲区内 p 把删除或复制的缓冲区内容放置在光标的下方r 把光标所在字符替换成另一字符 u 取消上一个执行命令U 取消对本行所有的修改 J 将两行合并 【环境的设定】:set nu 显示行数:set nonu 不显示行数 :set ic 查找时不考虑大小写因素:set noic 查找时考虑大小写因素 【执行指令】 :e filename 编辑另一个文件 :r filename 从光标所在处载入另一文件 :n 将光标移到第n行:s 字符串替换(例如:起始行号,终止行号s/被替换串/替换串/g):w 写入文件:q 退出vi :q! 强制退出vi(修改部分会遗失):x 写入文件并退出vi :wq 同上 :wq! 强制写入文件并退出vi 五、 linux常见问题5.1 安装linux的分区问题:在硬盘的剩余空间中装载linux分区,最好删除dos分区的最后一个分区,对于linux操作系统,一个交换分区(swap)和一个根分区是必须的。5.2 安装和卸载LILO: 安装:首先遇到LILO(LInux LOader)启动管理程序,估计应该在你安装Linux的时候,你会被要求选择LILO 的安装处,是硬盘主引导记录MBR还是Linux 的根分区。如果你有其他的启动管理程序例如Boot Magic 或者 System Commander 等,并且想使用他们,那么你应该把LILO安装到Linux的根分区。如果你选择使用LILO作为启动管理程序,就可以选择MBR。如果你想在启动时传递参数给内核,也应该使用MBR。计算机启动时,BIOS会执行位于硬盘主引导记录(MBR)。卸载:在dos下:用DOS启动,执行FDISK /MBR就可以重写主引导记录,覆盖LILO。在linux下:执行命令lilo u。5.3 如何在LINUX下看dos分区的文件 确定核心支持VFAT文件系统,然后改/etc/fstab中的选项,例如:mount t vfat /dev/hda1 /dos这样就可以看dos文件名了。5.4 复制子目录及子目录下的所有文件 在用cp时加上-r参数,如cp -r /mnt/floppy/* /usr/local/要参考的重要参数是-f s。5.5 文件/目录改名 简单地用move命令移到新名字下即可。例如mv /usr/oldname /usr/newname。5.6 怎样删除一个目录下的所有文件和子目录及子目录下的所有文件 rm -rf /tmp/example5.7 查找命令文件的路径 比如你要查找mount命令的具体路径,可以用type mount 、whereis mount,这个命令还可以找出与这个命令文件相关的文件如manuals page。 5.8 查找文件 使用find命令,比如: find /usr -name XF86* 在/usr目录下(包含子目录)查找名字前四个字母为XF86的文件 find . -name netscape print 在当前目录下(包含子目录)查找名为netscape的文件 find /home nouser 在/home目录下查找没有用户属主的文件(用户帐号被删除但有遗留文件) find /var -newer test 在/var目录下查找比test文件日期更新的文件更快速的查找文件是使用locate,第一次使用locate之前用updatedb来更新文件/目录名数据库。它把文件/目录信息写到数据库中,以后查找起来就特别的快。updatedb放在crontab中而且缺省配置是在半夜自动执行。locate存在轻微的安全性问题,因为普通用户可以用它来取得自己不能访问的目录/文件的部分信息。5.9 快速调出历史命令 可以用上下光标键来调出历史命令,然后用左右光标键移动并可编辑命令行。5.10 命令补齐(TAB键的妙用) 很多shell都有这个功能: 1. 只需输入文件或目录名的前几个字符, 然后按TAB键,如无相重的,完整的文件名立即自动在命令行出现;如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字.例如cd /mnt/cd 自动补齐为 cd /mnt/cdrom。 2. 在命令行下,只需输入例如m,再连续按两次TAB键,系统将列出所有以m开头的命令,(包括自定义的Bshell命令函数),对查找某些记不清楚的命令特有用.例如输入ftp,将查到ftp, ftpcount, ftpwho, ftpshut等本不熟悉的命令。5.11 怎样使linux启动进入时不直接进入X-WINDOWS界面? 改/etc/inittab文件,将有“id:5:initdefault:”这一行中的,把数字5改成3 即可5.12 在Linux下如何使用软盘、光盘以及DOS等非Linux分区因为Linux下没有A盘D盘的概念。你需要把软盘/光盘设备上的文件系统安装到Linux目录树上的一个点上,称之为安装点(mount point),通常是一个目录。安装Linux后会有个缺省的安装点/mnt,在它下面还有/mnt/floppy和/mnt/cdrom。你可以用mount -t ext2 /dev/fd0 /mnt/floppy -把Linux文件系统格式的软盘安装上来 1. 装载软盘首先用mkdir /mnt/floppy 在/mnt目录下建立一个空的floppy目录,然后输入mount -t msdos /dev/fd0 /mnt/floppy 将DOS文件格式的一张软盘装载进来,以后就可以在/mnt/floppy目录下找到这张软盘的所有内容。2. 装载Windows所在的C盘mkdir /mnt/c 在/mnt目录下建立一个空的c目录;mount -t vfat /dev/hda1 /mnt/c 将Windows的C盘按长文件名格式装载到/mnt/c目录下,以后在该目录下就能读写C盘根目录中的内容。3.装载光盘mkdir /mnt/cdrom 在/mnt目录下建立一个空的cdrom目录;mount -t iso9660 /dev/hdc /mnt/cdrom 将光盘载入到文件系统中来,将在/mnt/cdrom目录下找到光盘内容。有的Linux版本允许用mount /dev/cdrom或mount /mnt/cdrom命令装载光盘。要注意的是,用mount命令装入的是软盘、光盘,而不是软驱、光驱。有些初学者容易犯一个毛病,以为用上面命令后,软驱就成了/mnt/floppy,光驱就成了/mnt/cdrom,其实不然,当你要换一张光盘或软盘时,一定要先卸载,再对新盘重新装载。4.卸载卸载的命令格式是:umonut 目录名,例如要卸载软盘,可输入命令umonut /mnt/floppy。要注意的是,在卸载光盘之前,直接按光驱面板上的弹出键是不会起作用的。5.13 自动装载Windows下的分区 编辑/etc/fstab就可实现启动后自动装载windows下的分区,具体操作如下:用vi编辑fstab文件,然后加入要启动时装载的Windows分区,如:/dev/hdc1 /mnt/c vfat defaults 0 0/dev/hdc5 /mnt/d vfat defaults 0 0保存后就完成了对c,d盘的自动装载,重启后生效,其它盘依此类推。fstab栏位说明: 第一栏(fs_spec):实际的device 名称 第二栏(fs_file):对应到的目录结构(mount point) 第三栏(fs_vfstype):该 partition 的档案系统,常见的有:minix、ext、ext2、msdos、iso9660、nfs、swap(vfat指的是fat32格式) 第四栏(fs_mntops):在mount时的参数 第五栏(fs_freq):在使用dump时是否记录,不需要则输入0 第六栏(fs_passno):决定在开机时执行fsck的先后顺序5.14 掌握Linux的目录结构Linux的目录结构与Windows不同,而且在Windows下看不到Linux的目录,反过来,Linux也看不到Windows下的目录。Linux下各目录的含义如下:目录名称 意 义/vmlinuz该目录中存放的是系统内核 /bin 该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。 /boot 该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这里的一些信息 /dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。 /cdrom 该目录在刚安装系统时是空的,你可以将光驱文件系统挂在这个目录下, 例如“mount /dev/cdrom /cdrom” /etc该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。 /sbin该目录用来存放系统管理员的系统管理程序。 /home如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。 /lib 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库 /lostfound 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。/mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的 /root如果你是以超级用户的身份登录的,这个就是超级用户的主目录/tmp用来存放不同程序执行时产生的临时文件/usr用户的很多应用程序和文件都存放在该目录下5.15 如果找不到网卡,如何配置网卡?LINUX如果不能自动检测网卡,需要手工设置。修改/etc/conf.modules(如果没有就创建一个),并添加如下内容:alias eth0 neoptions ne io=0x300或者在lilo.conf中添加如下内容:append=ether=10,0x300,eth05.16 如何卸载linux分区:Win2000中可直接用磁盘管理器删除linux分区!在win98和winme中,通过软件来删除linux分区,如pqmagic,diskman等磁盘工具软件!在linux中可通过安装时的定制分区和linux自带得fdisk来删除!5.17 软件安装与卸载:安装:rpm i卸载:rpm-e5.18 X窗口的设置:以root用户身份进入系统并运行下面的命令: # Xconfigurator 手工启动X:输入startx5.19 配置声卡:以root用户身份进入系统并运行下面的命令: # /usr/sbin/sndconfig。5.20 设置ip地址:命令:ifconfig eth0 netmask 查看:ifconfig卸载:ifconfig down eth0 实验二 作业/进程调度算法设计与实现一、 实验目的调度是操作系统的主要功能,本实验通过自行设计实现的调度程序,使同学们加深对作业/进程调度功能的理解,从而掌握操作系统的基本原理。同时还可以提高同学们的编程能力。二、 实验总要求用C语言编制按优先级调度三个进程的调度程序,其中要求进程的优先级随着运行时间的延长而降低,但却随着等待时间的延长而升高。三、 实验的具体要求1、 设计进程控制块为以下结构:struct PROchar id; /*进程的id号,可以表示为a, b, c */int pri; /*进程的初始优先级*/int p; /*等待进程可以动态增加的优先级量*/int s; /*运行进程应该动态减少的优先级量*/int status; /*表示进程的状态,0为等待,1为运行*/A=a,2,1,1,0,B=b,1,1,1,0, C=c,0,1,1,0; 2、 要求接管时钟中断:INT 1Ch使用到的C语言函数为:getvect(intno) /*获得intno的中断向量*/(要求保存在一个全局变量中)setvect(intno,time) /*设置intno的中断向量为函数time的入口地址*/ 3、 在自己编制的新的时钟中断处理程序中,完成进程优先级的修改;并记录被中断的次数。Void interrupt time( ) if(A.status=1) A.pri=A.pri-A.s;else A.pri=A.pri+A.p;.xx+; 4、 编制函数select( ),其功能是从三个进程中选择优先级最高的进程,并将其状态设置为运行,其余设置为等待。并返回运行进程的序号供主程序选择运行。5、 编制函数int prime (int n),功能是判断n是否为素数,如果是素数,返回n;否则返回0。该函数是三个进程的执行过程。6、 主程序框架如下:main ( ) int a3=100,100,100; int I, j, k, u, v, w=0, x=0, y=0; char c; /*获得时钟中断向量*/ /*设置新的中断向量*/ .while(xx10000) a0=100; v=prime(a0); if(v) gotoxy(2,4); printf(“a %6d %6d”, v, w+); break;case1:.case2:./*恢复时钟中断*/四、实验运行结果: THE PROCESSES ARE PLAYING:Process id prime times A 3559 473 B 3541 470 C 3529 467 TIME INTERRUPT: 300Prime 记录的是各进程终止时的素数值。Times 记录的是三个进程各执行了多少次。五、所有的源程序清单。六、写出实验小结。实验三 内存管理设计一、实验目的内存管理是操作系统的主要功能之一,而内存管理的主要工作是进行内存的分配与回收,本实验通过自行设计实现的动态分区管理程序(按照首次适应算法FF),使同学们加深对内存管理功能的理解,从而掌握操作系统的基本原理。同时还可以进一步提高同学们的编程能力。二、实验总要求用C语言按照首次适应算法FF编制以动态分区管理方式进行内存分配和回收的程序,并测试通过。三、实验的具体要求1、设计三种结构:A. 已分配分区说明表;(包括序号、大小、起始地址、状态、作业号)B. 空闲分区说明表; (包括序号、大小、起始地址、状态、作业号)C. 作业表。struct JOB /*作业表的定义*/ int m_req; /*作业请求存储器的大小*/int no; /*作业号*/int status; /*状态位:未分配或已释放为0,已分配为1*/struct JOB *next;*C,*P,*Q;struct TAB /*已分配分区说明表和空闲分区说明表的定义*/int xh; int dx; int qz; char zt10; int no;struct TAB *next;*A,*B,*this,*next, *new;2、设计两个主要函数:A. 为I号作业分配存储区的函数fen();void fen() char ok=n; int k1,k2,i=1; seek(7);P=C; while(P-no!=I & P!=NULL) P=P-next; if(P=NULL| P-status=1) goto OUT1; k1=P-m_req;this=next=B; while(this!=NULL & this-dxnext; if(this=NULL) goto OUT1;.(学生完成)OUT1: if(ok=n) printf(Falied); else printf(OK!); getch();B. 回收I号作业分配存储区的函数huan();void huan()char ok=n; int k1,k2,k3,i=1;seek(7); P=C;while(P-no!=I & P!=NULL) P=P-next;if (P=NULL) goto OUT;this=next=A;P-status=0;while(this!=NULL & this-no!=I)next=this;this=this-next;if(this=NULL) goto OUT;k1=this-dx;k2=this-qz;.(学生完成)this=B;while(this!=NULL) this-xh=i;i+;this=this-next; OUT: if(ok=n)printf(Falied); else printf(OK!);getch();3、设计人-机交互界面:要求一:完成欲分配(回收)存储器的作业序号的输入;要求二:适时显示A、B、C三表当时的情况;4、主程序:供用户选择分配及回收存储器的作业号,每输入一个,立即显示分配、回收及作业表的变化情况,并等待下一次操作。void seek(int),show(),fen(),creat(),huan();char a;int I,J;main()new=(struct TAB*)malloc(sizeof(struct TAB);new-xh=1;new-dx=1024;new-qz=0; /*定义内存可分配空间最大为1024*/strcpy(new-zt,idlesse);new-next=NULL;B=new;C=NULL;START:seek(1); scanf(%c,&a);if(a!=1 & a!=2 & a!=3 & a!=4) goto START;switch(a) case 1:creat(); show(); goto START;case 2:fen(); show(); goto START;case 3:huan(); show(); goto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025酒、饮料及精制茶制造人员考试彩蛋押题及参考答案详解(达标题)
- 企业档案管理与文件归档规范
- 2025年营养学维生素缺乏症饮食干预策略考核答案及解析
- 2025年感染科抗生素应用模拟试卷答案及解析
- 2025年妇产科流产处理流程模拟试题答案及解析
- 2025年皮肤科痤疮患者护理知识考察试卷答案及解析
- 电商平台促销方案设计与实施
- 教育信息化平台功能需求方案
- 建筑结构施工组织设计全流程指导
- 农产品加工食品安全管理制度实施方案追踪
- 乡镇避孕药具知识培训
- 酒店室内装饰工程施工组织设计方案
- 西学中考试题库及答案
- 广东省佛山市南海区石门实验学校2025届数学七上期末经典模拟试题含解析
- 学校食堂诺如病毒防控培训
- 学堂在线 如何写好科研论文 章节测试答案
- 交通设施韧性提升-洞察及研究
- GB/T 45808-2025眼科光学接触镜和接触镜护理产品基于接触镜结合接触镜护理液评价其相互作用的细胞毒性试验
- CJ/T 340-2016绿化种植土壤
- T/CADBM 63-2022建筑室内窗饰产品百叶帘
- 购车没过户协议书
评论
0/150
提交评论