- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机操作系统
linux 上机实验
上机实验(1-4)
班级:计科0801
姓名:李超
学号12)
实验1 掌握Linux基本命令 和开发环境
一、实验内容
1. 掌握常用的Linux shell命令;
2. 掌握编辑环境VIM;
3. 掌握编译环境gcc及跟踪调试工具gdb
二.实验步骤
通过学习课外参考书,如《linux c编程》和《鸟哥的私房菜》。掌握一些基本的linux命令,如cd,ls,sudo,reboot,shutdown等等
掌握一些基本的vim编程命令,并可以通过gcc编译和gdb调试。
三.实验心得
通过这些基本的实验内容,对linux有了一定的基本了解,可以实现一些linux的基本操作,对我这个初学者的帮助很大,对linux感到不再陌生。
实验2 进程
一.实验内容
通过观察、分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在POSIX 规范中fork和kill系统调用的功能和使用。
二.实验前准备
学习man 命令的用法,通过它查看fork 和kill 系统调用的在线帮助,并阅读参考资料,学会fork 与kill 的用法。复习C 语言的相关内容。
三.实验问题
1. 你最初认为运行结果会怎么样?
答:会一直输出程序的进程名,并输出他的进程号。当输入数字时,会杀死对应的进程。
2.实际的结果什么样?有什么特点?试对产生该现象的原因进行分析。
答:程序会一直输出创建的进程号,当输出数字时,会杀死对应的进程。当杀死完0-9进程时,程序依然没有退出。当输入‘q’程序结束。杀死完0-9进程,但主进程并没有结束,所以一直会执行下去。直到输入‘q’后,主线程结束。
proc_number 这个全局变量在各个子进程里的值相同吗?为什么?
答:不同,每一个进程创建后,proc_number就已经复制了,并且和对应的线程一样。各线程分时运行,丛输出结果可以得出结论。
4.kill 命令在程序中使用了几次?每次的作用是什么?执行后的现象是什么?
答:两次 第一次为:kill(pid[ch-0],SIGTERM); 第二次为:kill(0,SIGTERM);前者为杀死对应号的单一进程,后者为杀死所有的这个程序的进程。
5.使用kill 命令可以在进程的外部杀死进程。进程怎样能主动退出?这两种退出方式哪种更好一些?
答:没能理解这个问题。
6.通过ps aux|grep process 命令得到了当前进程的个数,杀死进程后。未发现进程减少(觉得应该减少)。
四.实验心得
通过本次实验,了解了进程的相关知识,包括创建,杀死,执行等等。以及和主线程的关系,对linux的认识更深了一步。
实验3 线程
一.实验内容
通过观察、分析实验现象,深入理解线程及线程在调度执行和内存空间等方面的特点,并掌握线程与进程的区别。掌握POSIX 规范中pthread_create() 函数的功能和使用方法。
二.实验前准备
阅读参考资料,了解线程的创建等相关系统调用。
三.实验问题
1. 你最初认为前三列数会相等吗?最后一列斜杠两边的数字是相等,还是大于或者小于关系?
答:最初认为会很接近。认为后面两个数回相等。
2.最后的结果如你所料吗?有什么特点?对原因进行分析。
答:结果第一个进程数字很大,因为他最先建立,并且中间有1s的延时。后面两个数sum值大于main_counter,一开始被这个问题困住了。原因是因为main_counter的自加是和其他进程共用的,有可能同一时刻3个时刻sum++但main_counter只加一次,main_counter++分3步,先给自己赋值在+1。所以summain_counter
3.thread 的CPU 占用率是多少?为什么会这样?
答:196%
han 6379 196 0.0 26356 504 pts/0 Sl+ 20:52 0:21 ./posix3
我认为因为现在的电脑多为双核2线程,只保证2个线程并发执行,固系统不断的运行自加,是cpu的占有率增大。
4.thread_worker()内是死循环,它是怎么退出的?你认为这样退出好吗?
答:随着主程序的退出而退出。不好
5. 把你的程序源代码附到实验报告后。并请保留源代码,下次实验需要使用。
四.实验心得
通过本次实验,了解了线程的基本应用和他的特点,对线程
文档评论(0)