王朝百科
分享
 
 
 

操作系统实验教程

王朝百科·作者佚名  2010-05-23  
宽屏版  字体: |||超大  

图书信息书名:操作系统实验教程

作者:陆松年 主编 訾小超 潘理 龚玲 编著

操作系统实验教程

出版社:电子工业出版社

ISBN:978-7-121-10564-7

出版日期:2010年4月

定价:29.00元

开本:16开

页码:292页

宣传语立足实用•操作性强•覆盖面广

内 容 简 介本实验教材除了具有传统的操作系统实验基本特色外,还具有通信工程、信息安全和电子工程等非计算机专业特色,并且实验覆盖面很广、实验内容特别丰富。

本书共分3部分:第1部分是实验相关原理;第2部分是实验指导书,共设计了涵盖操作系统绝大部分原理和应用的28个实验,可作为学生的上机实验或课程设计;第3部分是部分实验参考解答,给出了第2部分中的16个实验参考答案,其余的实验是希望学生全部独立完成,这些实验也可作为教师布置上机的实验题目。

本书可作为高等院校计算机科学与应用专业,以及通信与信息工程、电子工程、信息安全、自动控制和信息管理类等非计算机专业的实验教材和实验教学参考书,对于计算机软件开发人员也是一本很好的参考书。

前 言操作系统不仅是理论性很强的课程,而且也是技术性和实践性很强的课程。过去在操作系统教学中,教师上课时在课堂上只是放空炮似地讲一些空洞的原理,学生感到学习内容很空洞,这形成了枯燥无味的“空对空”式的脱离实践的教学模式。学生在毕业设计时以及到了工作岗位上后,很多命令、工具不会用,系统程序设计能力很差,常常面对系统开发课题束手无策,很难较快地进入角色和完成研究开发任务。这种轻视实践和技术的思想都将导致学生在今后的工作中付出沉重的代价。

本教材的目的是通过操作系统实验或课程设计,加深学生对操作系统原理、系统与技术的理解和掌握,提高编制大型的系统和应用程序的能力,避免出现高分低能情况。

本实验教材在国内同类实验教材中,除了具有传统的操作系统实验基本特色外,还具有通信工程、信息安全和电子工程等非计算机专业特色,并且实验覆盖面很广、实验内容特别丰富、实用性也很强。

一般操作系统的实验教材较少涉及通信系统部分,而在另一门计算机通信课程中,一般也不结合有关操作系统内核的通信接口进行教学或实验,这使得学生即使学了这两门课程也不会编制与通信有关的系统程序。本实验教材在理论学习后接着安排有关的实验,要求学生编制进程控制、进程间数据通信,进程通信机制的实现,以及进行包括TCP和UDP的远程进程通信、远程过程调用实验,在此基础上完成远程计算机之间的文件传送FTP等功能。

信息安全是实践性很强的课程,同通信与信息工程相似,对掌握操作系统的开发与应用技术要求很高,为此,本教材设计了Linux内核模块和系统调用扩展等实验。本实验教材与当前信息安全需求相结合,设计了操作系统安全和安全访问控制实验,促进学生进行安全性增强方面的探索。

鉴于电子科学和自动控制专业与嵌入式系统联系越来越密切,本实验教材能使学生进一步掌握嵌入式操作系统的安装与引导技术。

本课程的实验设计安排分成难度级别不同的实验,供水平和要求不同的学生选择。本书可作为高等院校计算机科学与应用专业,以及通信与信息工程、信息安全、电子工程、自动控制和信息管理类等非计算机专业的实验教材及实验教学参考书,对于计算机软件开发人员也是一本很好的参考书。

全书共分3部分,第1部分是实验相关原理,讲述了与书中实验密切相关的操作系统,这一部分大多是从本书最后给出的参考文献[1](《操作系统教程(第3版)》,陆松年主编,电子工业出版社出版)摘录整理而来的,这是考虑到使用本书的学生已经或正在学习操作系统,但不是使用参考文献[1]的教材,所以把与实验密切相关的内容整理在这里,其余部分可以使用其他通用的操作系统教材。当然,单单阅读这部分是远远不够的,学生还要掌握操作系统的基本原理才行。个别实验的原理部分可以直接阅读参考文献[1]的其他部分,并可以帮助进行实验设计与编程。

第2部分是实验指导书,共设计了涵盖操作系统绝大部分原理和应用的28个实验(包括分实验)。一些实验一般学生在做了适当准备后可以在2~4个学时之内完成,但有些实验比较大,设计、编程和调试都比较复杂,可以作为学生的课程设计,所需学时数约为18~54学时。

第3部分是部分实验参考解答,给出了第2部分中的16个实验参考解答,这些参考解答全部经过了测试。本书其余的实验是希望学生全部独立完成,这些实验也可作为教师布置上机的实验题目。

为了使学生通过实验后,进一步理解与实验相关的原理和理论,我们在每个实验的最后部分给出了若干个思考题,学生在实验前先尝试独立完成这些思考题,必要时可以参考部分实验参考解答中的思考题答案。

在本书的编写过程中,得到了学校和院、系领导的大力支持。由于作者水平有限,实验内容尚需要不断更新,书中难免存在一些错误,恳切希望各位专家、学者和读者批评指教,作者将不胜感谢。

作 者

2010年3月

于上海交通大学

电子信息与电气工程学院 信息安全工程学院

目 录第1部分 实验相关原理

第1章 存储管理 2

1.1 可变分区存储管理 2

1.1.1 空闲存储区表 2

1.1.2 首次适应法 3

1.1.3 循环首次适应法 5

1.1.4 最佳适应算法 5

1.1.5 最差适应法 6

1.2 分页存储管理 6

1.2.1 分页存储管理的基本思想 6

1.2.2 地址变换 6

1.2.3 空闲内存页的管理 7

1.2.4 请求分页式基本原理 7

1.2.5 页面淘汰 8

第2章 进程管理 10

2.1 进程概述 10

2.1.1 进程的概念 10

2.1.2 进程的组成 10

2.1.3 进程的状态及其变化 11

2.2 进程控制块 12

2.3 调度 12

2.3.1 进程切换调度策略 12

2.3.2 进程调度算法 12

2.4 UNIX系统的进程调度 14

2.4.1 进程的切换调度算法 14

2.4.2 切换调度程序 14

2.5 进程的控制 14

2.5.1 进程的阻塞 14

2.5.2 UNIX系统中的进程睡眠和唤醒 15

2.5.3 进程的终止和等待终止 15

2.6 进程的创建和映像改换 16

2.6.1 进程的创建 16

2.6.2 进程映像的改换 16

2.7 线程 18

2.7.1 进程和线程 18

2.7.2 多线程 18

2.7.3 线程的状态 19

2.7.4 线程应用示例 19

第3章 进程通信 21

3.1 进程间互斥控制方法 21

3.1.1 锁的表示和操作 21

3.1.2 锁的安全控制 21

3.2 信号量和semWait、semSignal操作 23

3.3 信号量的应用 24

3.3.1 利用信号量实现互斥 24

3.3.2 两个进程间的同步 24

3.3.3 生产者和消费者问题 25

3.4 进程间的数据通信 26

3.4.1 消息通信 26

3.4.2 共享存储区 27

3.4.3 Solaris门 27

3.5 软中断和信号机构 28

3.5.1 信号的产生与类型 28

3.5.2 信号的处理方式及设置 29

3.5.3 信号的传送 30

3.6 死锁 30

3.6.1 产生死锁的原因 31

3.6.2 产生死锁的条件 31

3.6.3 死锁的预防 31

3.6.4 死锁的避免 32

3.6.5 死锁的检测 33

第4章 文件系统 35

4.1 文件目录 35

4.1.1 目录的内容 35

4.1.2 目录的结构 35

4.2 文件存储资源分配 35

4.3 文件的系统调用 36

4.3.1 文件的创建、打开、关闭和取消 36

4.3.2 文件的读/写 37

4.4 文件的标准子例程 37

4.4.1 标准I/O的概念 37

4.4.2 流文件的打开和关闭 38

4.4.3 流文件的读/写 39

4.5 UNIX文件系统的内部结构 40

4.5.1 索引节点 40

4.5.2 文件索引结构 40

4.5.3 目录结构 42

4.5.4 打开文件结构 43

4.6 管道文件和管道通信 45

4.6.1 管道文件 45

4.6.2 管道的读/写和关闭 45

4.6.3 有名管道 46

第5章 UNIX系统和网络程序设计 48

5.1 高级进程间通信 48

5.1.1 消息通信 48

5.1.2 共享内存 49

5.1.3 信号灯 50

5.2 远程进程间通信Socket 51

5.2.1 Socket通信概述 51

5.2.2 Socket系统调用 52

5.3 UDP套接字编程 54

5.3.1 UDP套接字的基本概念 54

5.3.2 UDP套接字基本函数 54

5.4 Solaris门通信 55

5.5 RPC(远程过程调用) 57

5.5.1 RPC概述 57

5.5.2 RPC服务地址的获取 57

5.5.3 rpcgen编程指南 58

5.5.4 客户端身份验证 59

第6章 Linux的动态内核模块机制 60

6.1 操作系统的体系结构 60

6.1.1 单体式结构 60

6.1.2 微内核结构 60

6.2 Linux的动态内核模块机制概述 61

6.3 Linux内核模块的动态加载/卸载 62

6.3.1 内核模块的动态加载 62

6.3.2 内核模块的动态卸载 62

6.4 Linux动态模块的开发与实现 63

6.4.1 Linux模块的基本组成 63

6.4.2 Linux内核模块的符号引用 63

6.4.3 Linux内核模块的编译和运行模式 63

6.4.4 Linux内核模块的调试和信息输出 64

第2部分 实验指导书

操作系统实验指导 66

(一)实验的目的和要求 66

(二)实验步骤 66

(三)实验报告要求 68

实验1 Linux虚拟存储器的实现 69

实验2 可变分区存储管理 72

实验3 请求分页系统页面淘汰算法 75

实验4 进程调度算法 77

(一)多级反馈队列调度算法 77

(二)进程调度算法的实现 79

实验5 进程和进程控制 82

(一)进程控制和信号机制 82

(二)生产者和消费者问题 83

实验6 进程的数据通信 86

(一)消息通信 86

(二)共享内存和信号量 87

实验7 并发线程和线程通信 89

实验8 Linux消息队列的实现 90

实验9 死锁实验 93

(一)死锁的避免 93

(二)死锁的检测 94

实验10 文件系统的用户界面 96

(一)文件复制 96

(二)管道文件通信 97

实验11 文件系统设计 99

实验12 有名管道机制的实现 102

实验13 Linux的内核模块扩展 105

实验14 Linux的系统调用扩展 108

实验15 Solaris门函数进程通信 114

实验16 远程进程通信 118

(一)TCP通信实验 118

(二)UDP通信实验 120

实验17 远程过程调用 122

实验18 Shell程序设计 124

实验19 嵌入式Linux系统的安装与引导 126

实验20 操作系统安全 128

(一)操作系统登录的可信路径 128

(二)基于硬件标识的程序权限控制 129

实验21 Linux的安全访问控制 131

第3部分 部分实验参考解答

实验1 Linux虚拟存储器实现参考解答 134

实验3 请求分页系统页面淘汰算法

实验3 参考解答 139

实验4 进程调度算法参考解答 146

(一)多级反馈队列调度算法 146

(二)FCFS进程调度算法的实现 159

实验5 进程和进程控制参考解答 180

(二)生产者和消费者问题 180

实验8 Linux消息队列的实现参考解答 188

实验9 死锁实验参考解答 208

(一)死锁的避免 208

(二)死锁的检测 215

实验11 文件系统设计参考解答 222

实验13 Linux的内核模块扩展参考解答 242

实验14 Linux的系统调用扩展参考解答 248

实验19 嵌入式Linux系统的安装与引导参考解答 267

实验20 操作系统安全参考解答 270

(一)操作系统登录的可信路径 270

(二)基于硬件标识的程序权限

(二)控制 272

实验21 Linux的安全访问控制参考解答 275

参考文献 279

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有