欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    OS实验指导书教程文件.docx

    • 资源ID:9244039       资源大小:30.82KB        全文页数:33页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    OS实验指导书教程文件.docx

    1、OS实验指导书教程文件OS实验指导书实验一 UNIX/LINUIX入门实验学时:2学时实验类型:验证型一、 实验目的了解UNIX/LINUX运行环境,熟悉UNIX/LINUX的常用基本命令,熟悉和掌握UNIX/LINUX下c语言程序的编写、编译、调试和运行方法。二、 实验内容 熟悉UNIX/LINUX的常用基本命令如ls、who、pwd、ps等。 练习UNIX/LINUX的文本行编辑器vi的使用方法 熟悉UNIX/LINUX下c语言编译器cc/gcc的使用方法。用vi编写一个简单的显示“Hello,World!”c语言程序,用gcc编译并观察编译后的结果,然后运行它。三、 实验要求按照要求编写

    2、程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、 Linux 常用命令Linux 系统常用命令格式: command option argument1 argument2 .其中option以“-”开始,多个option可用一个“-”连起来,如“ls -l -a” 与“ls -la”的效果是一样的。根据命令的不同,参数分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这些设备进行重定向。 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回一个非零值(在shell中可

    3、用变量$?查看)。 在shell script中可用此返回值作为控制逻辑的一部分。帮助命令:man 获取相关命令的帮助信息 例如:man dir 可以获取关于dir的使用信息。info 获取相关命令的详细使用方法 例如:info info 可以获取如何使用info的详细信息。bzip2/bunzip2 .bz2文件的压缩/解压缩程序cpio 备份文件dump 备份文件系统gzip/gunzip .gz文件的压缩/解压缩程序gzexe 压缩可执行文件restore 还原由倾倒(Dump)操作所备份下来的文件或整个文件系统(一个分区)tar 将若干文件存档或读取存档文件unarj 解压缩.arj文

    4、件zip/unzip 压缩/解压缩 zip文件磁盘操作:cd/pwd 切换目录/显示当前工作目录df 显示磁盘的相关信息du 显示目录或文件的大小e2fsck 检查ext2/ext3文件系统的正确性fdisk 对硬盘进行分区 fsck 检查文件系统并尝试修复错误losetup 设置循环设备ls 列出目录内容mkdir 创建目录mformat 对MS-DOS文件系统的磁盘进行格式化mkbootdisk 建立目前系统的启动盘mke2fs 建立ext2文件系统mkisofs 制作iso光盘映像文件mount/umount 加载文件系统/卸载文件系统quota 显示磁盘已使用的空间与限制sync 将内

    5、存缓冲区内的数据写入磁盘tree 以树状图列出目录的内容系统操作:alias 设置指令的别名chkconfig 检查,设置系统的各种服务clock 调整 RTC 时间date 显示或设置系统时间与日期dmesg 显示开机信息eval 重新运算求出参数的内容exit 退出目前的shellexport 设置或显示环境变量finger 查找并显示用户信息free 显示内存状态hostid 显示主机标识hostname 显示主机名id 显示用户标识kill 删除执行中的程序或工作last 列出目前与过去登入系统的用户相关信息logout 退出系统lsmod 显示已载入系统的模块modprobe 自动处

    6、理可载入模块passwd 设置用户密码ps process status 报告程序状况reboot 重启计算机rhwo 查看系统用户rlogin 远程登入rpm 管理Linux各项套件的程序shutdown 关机 su switch user 变更用户身份top 显示,管理执行中的程序uname 显示系统信息useradd/userdel 添加用户 / 删除用户userinfo 图形界面的修改工具usermod 修改用户属性,包括用户的shell类型,用户组等,甚至还能改登录名w 显示目前注册的用户及用户正运行的命令whereis 确定一个命令的二进制执行码,源码及帮助所在的位置who 列出正

    7、在使用系统的用户whois 查找并显示用户信息网络通信:arp 网地址的显示及控制ftp 文件传输lftp 文件传输mail 发送接收电子邮件mesg 允许或拒绝其他用户向自己所用的终端发送信息mutt E-mail管理程序ncftp 文件传输netstat 显示网络连接、路由表和网络接口信息pine 收发电子邮件,浏览新闻组ping 向网络上的主机发送 icmp echo request 包ssh 安全模式下的远程登录telnet 远程登录talk 与另一用户对话traceroute 显示到达某一主机所经由的路径及所使用的时间wget 从网络上自动下载文件write 向其他用户的终端写信息文

    8、件操作:cat 显示文件内容和合并多个文件 clear 清屏chattr 改变文件属性chgrp 改变文件组权chmod 改变文件或目录的权限chown 改变文件的属权comm 比较两个已排过序的文件cp 将文件拷贝至另一文件dd 从指定文件读取数据写到指定文件df 报告磁盘空间使用情况diff 比较两个文本文件,列出行不同之处du 统计目录文件所占磁盘空间的大小file 辨识文件类型emacs 功能强大的编辑环境 find 搜索文件并执行指定操作(find2)grep 按给定模式搜索文件内容head 显示指定文件的前若干行less 按页显示文件ln 创建文件链接locate 查找符合条件的文

    9、件more 在终端屏幕按帧显示文本文件mv 文件或目录的移动或更名rm/rmdir 删除文件目录sed 利用script来处理文本文件sort 对指定文件按行进行排序tail 显示指定文件的最后部分touch 创建文件tr 转换字符vi 全屏编辑器wc 显示指定文件中的行数,词数或字符数which 在环境变量 $PATH 设置的目录里查找符合条件的文件 mv 文件或目录的移动或更名rm/rmdir 删除文件目录sed 利用script来处理文本文件sort 对指定文件按行进行排序tail 显示指定文件的最后部分touch 创建文件tr 转换字符vi 全屏编辑器wc 显示指定文件中的行数,词数或

    10、字符数实验二 进程管理实验学时:2学时实验类型:验证型、设计型一、实验目的加深对进程概念的理解,明确进程与程序的区别;进一步认识并发执行的实质。二、实验内容(1)进程创建编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示“a“;子进程分别显示字符”b“和字符“c”。试观察记录屏幕上的显示结果,并分析原因。(2)进程控制修改已编写的程序,将每一个进程输出一个字符改为每一个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。(3)进程的管道通信 编写程序实现进程的管道通信。使用系统调用p

    11、ipe()建立一个管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。三、实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验报告要求 实验目的 实验内容 实验要求 实验设计(功能设计、数据结构、程序框图) 实验结果及分析 运行结果 感想 参考资料五、补充材料管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者用于父进程和子进程间的通

    12、信,后者用于运行于同一台机器上的任意两个进程间的通信。无名管道由pipe()函数创建: #include int pipe(int filedis2);参数filedis返回两个文件描述符:filedes0为读而打开,filedes1为写而打开。filedes1的输出是filedes0的输入。下面的例子示范了如何在父进程和子进程间实现通信。 #define INPUT 0 #define OUTPUT 1 void main() int file_descriptors2; /*定义子进程号 */ pid_t pid; char buf256; int returned_count; a/*创

    13、建无名管道*/ pipe(file_descriptors); /*创建子进程*/if(pid = fork() = -1) printf(Error in forkn);exit(1); /*执行子进程*/ if(pid = 0) printf(in the spawned (child) process.n); /*子进程向父进程写数据,关闭管道的读端*/ close(file_descriptorsINPUT);write(file_descriptorsOUTPUT, test data, strlen(test data); exit(0); else /*执行父进程*/ print

    14、f(in the spawning (parent) process.n); /*父进程从管道读取子进程写的数据,关闭管道的写端*/ close(file_descriptorsOUTPUT); returned_count = read(file_descriptorsINPUT, buf, sizeof(buf); printf(%d bytes of data received from spawned process: %sn, returned_count, buf); 实验三 一个进程启动另一个程序的执行实验学时:2学时实验类型:设计一、 实验目的编写Linux环境下,fork()

    15、与exec()的结合使用实现一个进程启动另一个程序的执行的基本方法,掌握exec()的几种调用方法。二、 实验内容父进程从终端读取要执行的命令,并交给子进程执行。父进程等待子进程结束,并打印子进程的返回值。提示:从终端读取要执行的命令可用fgets()实现。三、 实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、 实验报告要求 实验目的 实验内容 实验要求 实验设计(功能设计、数据结构、程序框图) 实验结果及分析 运行结果 感想 参考资料五、补充材料一个进程如何来启动另一个程序的执行?在Linux中要使用exec()类的函数实现在一个进程来

    16、启动另一个程序。exec类的函数不止一个,但大致相同,在Linux中,它们分别是:execl,execlp,execle,execv,execve和execvp,下面以execlp为例,其它函数究竟与execlp有何区别,请通过manexec命令来了解它们的具体情况。 一个进程一旦调用exec类函数,它本身就“死亡”了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。 如果你的程序想启动另一程序的执行但自己仍想继续运行的话,怎么办呢?那就是结合fork与exec(

    17、)的使用。下面一段代码显示如何启动运行其它程序: #include char command256; int main() int rtn; /*子进程的返回数值*/ int errorno; while(1) /* 从终端读取要执行的命令 */ printf( ); fgets( command, 256, stdin ); commandstrlen(command)-1 = 0; if ( fork() = 0 ) /* 子进程执行此命令 */ errorno=execlp(command, command, NULL, NULL); /* 如果exec函数返回,表明没有正常执行命令,打

    18、印错误信息*/ perror( command ); exit(errorno); else /* 父进程, 等待子进程结束,并打印子进程的返回值 */ wait ( &rtn ); printf( child process return %dn, rtn ); return 0; 表1 exec()族调用execl(执行文件)相关函数 fork,execle,execlp,execv,execve,execvp表头文件 #includeFxhLinux联盟定义函数 int execl(const char * path,const char * arg,.);FxhLinux联盟函数说明

    19、execl()用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件时传递过去的argv(0)、argv1,最后一个参数必须用空指针(NULL)作结束。FxhLinux联盟返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。FxhLinux联盟范例 #includeFxhLinux联盟main()FxhLinux联盟 FxhLinux联盟execl(“/bin/ls”,”ls”,”-al”,”/etc/passwd”,(char * )0);FxhLinux联盟FxhLinux联盟执行 /*执行/bin/ls -al /etc/passwd *

    20、/FxhLinux联盟-rw-r-r- 1 root root 705 Sep 3 13 :52 /etc/passwdFxhLinux联盟FxhLinux联盟FxhLinux联盟execlp(从PATH 环境变量中查找文件并执行) 相关函数 fork,execl,execle,execv,execve,execvpFxhLinux联盟表头文件 #includeFxhLinux联盟定义函数 int execlp(const char * file,const char * arg,);FxhLinux联盟函数说明 execlp()会从PATH 环境变量所指的目录中查找符合参数file的文件名,

    21、找到后便执行该文件,然后将第二个以后的参数当做该文件的argv0、argv1,最后一个参数必须用空指针(NULL)作结束。FxhLinux联盟返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。FxhLinux联盟错误代码 参考execve()。FxhLinux联盟范例 /* 执行ls -al /etc/passwd execlp()会依PATH 变量中的/bin找到/bin/ls */FxhLinux联盟#includeFxhLinux联盟main()FxhLinux联盟FxhLinux联盟execlp(“ls”,”ls”,”-al”,”/etc/pass

    22、wd”,(char *)0);FxhLinux联盟FxhLinux联盟执行 -rw-r-r- 1 root root 705 Sep 3 13 :52 /etc/passwdFxhLinux联盟FxhLinux联盟FxhLinux联盟execv(执行文件) 相关函数 fork,execl,execle,execlp,execve,execvpFxhLinux联盟表头文件 #includeFxhLinux联盟定义函数 int execv (const char * path, char * const argv );FxhLinux联盟函数说明 execv()用来执行参数path字符串所代表的文

    23、件路径,与execl()不同的地方在于execve()只需两个参数,第二个参数利用数组指针来传递给执行文件。FxhLinux联盟返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。FxhLinux联盟错误代码 请参考execve()。FxhLinux联盟范例 /* 执行/bin/ls -al /etc/passwd */FxhLinux联盟#includeFxhLinux联盟main()FxhLinux联盟FxhLinux联盟char * argv =“ls”,”-al”,”/etc/passwd”,(char*) ;FxhLinux联盟execv(“/bi

    24、n/ls”,argv);FxhLinux联盟FxhLinux联盟执行 -rw-r-r- 1 root root 705 Sep 3 13 :52 /etc/passwdFxhLinux联盟FxhLinux联盟FxhLinux联盟execve(执行文件) 相关函数 fork,execl,execle,execlp,execv,execvpFxhLinux联盟表头文件 #includeFxhLinux联盟定义函数 int execve(const char * filename,char * const argv ,char * const envp );FxhLinux联盟函数说明 execve

    25、()用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来传递给执行文件,最后一个参数则为传递给执行文件的新环境变量数组。FxhLinux联盟返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno 中。范例#include main()char * argv =“ls”,”-al”,”/etc/passwd”,(char *)0;char * envp =“PATH=/bin”,0execve(“/bin/ls”,argv,envp); 执行-rw-r-r- 1 root root 705 Sep 3 13 :52 /etc/passwdex

    26、ecvp(执行文件)相关函数fork,execl,execle,execlp,execv,execve 表头文件 #include 定义函数 int execvp(const char *file ,char * const argv );函数说明 execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名,找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。返回值 如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。错误代码 请参考execve()。范例 /*请与execlp()范例对照*#include main() char *

    27、 argv = “ls”,”-al”,”/etc/passwd”,0; execvp(“ls”,argv); 执行 -rw-r-r- 1 root root 705 Sep 3 13 :52 /etc/passwd实验四 基于消息队列和共享内存的进程间通信一、实验目的Linux系统的进程通信机构(IPC)允许在任意进程间大批量地交换数据。本实验的目的是了解和熟悉:1. Linux支持的消息通信机制及其使用方法2. Linux系统的共享存储区的原理及使用方法。二、实验内容1 消息的创建、发送和接收使用消息调用msgget()、msgsnd()、msggrev()、msgctrl()编制长度为1K

    28、的消息的发送和接收程序。2 共享存储取得创建、附接和断接使用系统调用shmget()、shmat()、shmctl()、shmctl(),编制一个与上述功能相同的程序。三、实验要求按照要求编写程序,放在相应的目录中,编译成功后执行,并按照要求分析执行结果,并写出实验报告。四、实验报告要求 实验目的 实验内容 实验要求 实验设计(功能设计、数据结构、程序框图) 实验结果及分析 运行结果 感想 参考资料五、设计提示为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,server和client,进行通信;server端建立一个key为75的消息队列,等待其他进程发来的消息。当

    29、遇到类型为1的消息时,则作为结束信号,取消该队列,并退出Server。Server每收到一个消息后显示一句“(Server)received”;Client端使用key为75的消息队列,先后发送类型为10到1的消息,然后退出。最后一个消息即server端需要的结束信号。Client每发送一条消息,显示一句“(Client)sent”;父进程在server和client均退出后结束。六、相关系统调用1、共享内存(1)共享存储区的建立 shmid=shmget (key ,size ,flag):建立(获得)一块共享存储区,返回该共享存储区的描述符shmid;若尚未建立,便为进程建立一个指定大小的共享存储区。(2)共享存储区的控制 shmctl(id,cmd,buf) 对共享存储区的状态信息进行查询,如其长度、所连接的进程数、创建者标识符等;也可设置或修改其属性,如共享存储区的许可权、当前连接的进程计数等;还


    注意事项

    本文(OS实验指导书教程文件.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开