操作系统原理及应用(Linux)教学大纲
一、课程基本信息
课程名称:操作系统
先修课程:《计算机导论》(或《计算机应用基础》)、《C 语言程序设计》、《数据结构》、《计算机组成原理》适用专业:计算机科学与技术、软件工程、网络工程等计算机及相关专业。
课程类别:专业教育必修课程/基础课程
课程总学时:56-72(其中理论40-56学时,实验16学时)
二、课程目标
通过本课程的学习,使学生具备下列能力:
1.能够准确理解及掌握操作系统的基本概念、基本功能和基本原理,理解操作系统的整体运行过程。
2.能够理解及掌握操作系统的各组成部分,包括进程管理、调度、内存管理、文件管理、设备管理的功能及策略、算法、机制及相互关系。
3.能够运用操作系统原理、方法与技术分析问题和解决问题,并能利用C语言描述相关算法。
4.在理解及掌握操作系统原理及算法的基础上,在进行硬件配置、软件设计及编程过程中,能够在资源和效率方面综合考虑,完善提高设计方案,提高利用操作系统知识解决实际问题的能力。
三、教学内容、要求及重难点
第一章操作系统引论(3学时)
教学要求:
1.掌握操作系统的概念及功能,掌握操作系统的分类;
2.掌握操作系统在计算机系统中的地位和作用;理解操作系统的大致运行过程;
3.理解操作系统的特征;了解各种类型操作系统的特点及服务适应情况;
4.了解操作系统的结构特征及发展概况,发展趋势。
进程间通信实验
教学重点:
操作系统的概念、作用;操作系统的分类;操作系统的特征;操作系统的功能;操作系统的结构设计。
教学难点:
操作系统的特征;操作系统的功能。
[实验名称]
Linux系统管理及命令的使用
[实验类型]
验证型
[实验要求]
1.熟练Linux系统常用命令的使用;
2.掌握Vi编辑器的使用方法;
3.练习Linux shell的作用和主要分类,能编写简单的shell 程序
[实验学时]
2学时
第二章进程管理(10学时)
教学要求:
1.掌握进程的概念与特征;
2.掌握进程的结构及进程控制的方法;
3.掌握进程的同步与互斥,以及实现进程同步问题的硬件方法和软件方法;
4.能用信号量机制解决进程的同步问题;
5.掌握线程的基本概念;
6.基本掌握利用管程解决同步问题的方法。
教学重点:
进程的基本概念;进程控制;进程的同步与互斥;进程同步的应用。
教学难点:
进程的概念;进程的并发性;进程同步。
[实验名称]
实验1进程控制编程
[实验类型]
验证型
[实验要求]
1.利用fork()创建几个进程,并分析这几个进程之间的关系;
2.熟悉并使用下列系统调用:fork()、exit()、wait()、lockf();对进程进行控制。
3.进一步理解进程的并发性。
[实验学时]
2学时
[实验名称]
实验2进程的消息通信和共享存储区通信
[实验类型]
验证型
[实验要求]
1.实现进程的消息通信:使用系统调用
msgget(),msgsnd(),msgrcv()及msgctl(),编制对长度为1K的消息,并进行发送和接收;
2.分析消息的传递过程。
3.实现进程的共享存储区通信:使用系统调用shmget()、shmat()、sgmdt()、shmtctl(),编制一个程序,对一个长度为1K的消息进行发送和接收。
4.程序中对共享存储区进行创建、附接和断开的操作。
[实验学时]
2学时
[实验名称]
实验3进程通信的管道通信和软中断通信
[实验类型]
验证性
[实验要求]
1.实现进程的管道通信:使用系统调用pipe()建立一个管道文件,用来实现两个进程之间的通信;
2.分析管道通信的实现过程。
3.实现进程之间的软中断通信:使用系统调用fork()创建两个子进程,再用系统调用signal()、kill()实现进程之间的通信。
4.进一步理解体会以上各进程通信的特点及实现。
[实验学时]
2学时
第三章处理机调度与死锁(7学时)
教学要求:
1.掌握三级调度的概念及各级调度的分类;
2.掌握作业调度及进程调度的评价准则;
3.掌握几种典型的调度算法并能灵活应用;
4.掌握死锁的基本概念、产生的原因和必要条件;