《计算机系统基础(2)》课程教学大纲
课程名称:计算机系统基础(2)课程名称:
课程英文名称:Computer System Foundation(2)课程英文名称:
总学时/周学时/学分: 90/5/5.0总学时/周学时/学分:先修课程:程序设计基础先修课程:
授课时间:1-18周:周二5、6、7节,周四1、2节授课时间:
授课对象:2016软件工程1班授课对象:
开课院系:计算机与网络安全学院开课院系:
联系电话:13798778521
任课教师姓名/职称:刘文果 /副研究员任课教师姓名/职称:Email:liuwg@dgut.edu.cnEmail:
授课地点:周二7B315、周四7B314授课地点:
其中实验(实训、讨论等)学时: 40其中实验(实训、讨论等)学时:课程类别(必修/选修):必修课程类别(必修/选修):
答疑时间、地点与方式: 1.每次上课的课前、课间和课后,采用一对一的问答方式;答疑时间、地点与方式:
2.通过QQ,网上答疑系统及电话答疑,时间地点不限课程考核方式:
作业(√) 期中考(√) 期末考(√) 实验(√) 出勤(√) 使用教材: 汤小丹,《计算机操作系统》(第4版),西安电子科技大学出版社、使用教材:
《Linux系统编程讲义》(第3.4版)
参考教材: (美)兰德尔·E.布莱恩特(Randal E.Bryant),《深入理解计算机系统》,机械工业出版参考教材:
社,2016
李善平. 操作系统学习指导和考试指导[M]. 浙江大学出版社, 2004.
课程简介: 《计算机系统基础(2)》是软件工程专业的学科基础课,阐述操作系统的基本概念、基本原理和实现课程简介:
技术,学习和理解Unix I/O、文件系统、进程/线程管理、内存管理、进程间通信、处理器调度、网络通信的基本原理,培养Linux环境系统I/O、多进程/多线程编程、进程间同步互斥、进程间通信、网络编程、并发编程技能,掌握多进程/多线程并发特征,建立初步的计算机系统观,培养学生的分析问题和解决问题的实际能力,为今后从事并发编程、系统管理、性能优化等工作提供必要的理论基础,也为进一步学好数据库系统、计算机网络和分布式系统等课程奠定基础知识。
课程教学目标: 1.理解操作系统的基本概念、原理和课程教学目标:
实现技术,建立初步的系统观
2.理解处理机调度、进程管理、内存管理、I/O控制、文件管理的基本结构与算法,评价算法优劣,建立效率、开销、安全、平衡、折衷、公平的基本思想3.运用Linux API编写多进程/多线程并发应用程序
本课程与学生核心能力培养之间的关联(可多选):
√ 核心能力1:应用数学、计算机科学及软件工程知识的能力
□ 核心能力2:设计与执行实验,以及分析与解释数据的能力
□ 核心能力3:执行软件工程实践所需技术、技巧及使用现代工具的能力
√ 核心能力4:设计及评估算法、程序、组件和软件系统能力
□ 核心能力5:项目管理、有效沟通、领域整合与团队合作的能力
√ 核心能力6:发掘、分析、应用研究成果及因应复杂且具整合性软件开发问题的能力及创新意识
√ 核心能力7:认识时事议题与产业趋势,了解信息科技对环境、社会及全球的影响,具备一定的国际视野、以及持续学习的习惯与能力
□ 核心能力8:理解及遵守专业伦理,认知社会责任,重视知识产权
理论教学进程表
教学时长3
教学方式课堂讲授
作业安排课后作业
周次1
教学主题操作系统概述,Linux操作系统基本知识
Linux环境C语言编程Unix I/O与文件管理
教学的重点与难点
重点:操作系统是什么、所处位置、发展历史、功能、类型;Linux系统目录结构;Linux系统文件与目录操作 重点: 操作系统功能、结构;系统调用失败处理;自定义库函数的创建与链接
重点:Linux C程序编译和执行过程;字符串处理函数使用;Linux编程错误诊断和处理、命令行参数重点:Unix I/O概念、基于Unix I/O系统调用函数编程、内核文件I/O数据结构、 文件逻辑结构、外存分配方式、文件目录管理、文件存储空间管理、文件共享原理 难点:文件索引结构;文件共享与保护;磁盘容错技术、dup函数使用
重点:进程、逻辑控制流、并发概念;进程结构;调用fork创建进程,调用exec函数加载程序;Linux信号机制及应用;管道、消息队列与共享内存 难点:进程并发特征;大量子进程回收方法;信号处理带来的竞争与消除方法
重点:线程概念;多线程编程基本方法;共享变量分析与识别;临界区、临界资源与信号量;线程同步与互斥;经典同步问题;使用多线程提高并发性;用于Pthreads同步量和互斥量编写同步程序 难点:信号量模型与P、V操作;线程同步与互斥编程;线程安全;竞争
重点:管道、消息队列、共享内存概念和通信编程方法 难点:利用IPC信号量实现进程间同步
重点:三级调度层次;调度模型;先来先服务、短作业优先、轮转调度算法、响应比高优先、多级反馈队列算法;调度算法性能指标及计算 难点:多级反馈队列调度算法、实时调度
重点:死锁概念、死锁四个基本条件;死锁预防、死锁避免方法;银行家算法;死锁检测与解除 难点:银行家算法
重点:多级存储器层次;分页存储管理;分段存储管理;地址转换过程;请求分页存储管理;先进先出、最佳、LRU页面置换算法 难点:多级页表;Clock页面置换算法、缺页中断处理
重点: 网络编程模型、套接字地址、网络编程API、HTTP协议 难点: 并发编程、weblet代码分析和理解
23课堂讲授课后作业
3,46课堂讲授课后作业
5,6
Linux进程管理与控制
6
课堂讲授小组讨论
课后作业
7,8,9,10
线程控制与同步
12
课堂讲授小组讨论
课后作业
11进程间通信3课堂讲授课后作业
12处理机调度3课堂讲授课后作业
13死锁3课堂讲授课后作业
14,15
存储器管理,虚拟存储器
6课堂讲授课后作业
16,17,18
网络编程、并发网络通信编程
合计:
5课堂讲授课后作业
50
实践教学进程表
项目类型练习
教学方式操作演示
周次2
实验项目名称Linux文件操作
Linux C库函数使用Linux I/O编程
学时4
重点与难点
重点:文件操作、目录操作、打包 难点:Linux文件权限
重点:字符串处理编程 难点:编译错误处理、算法流程设计
重点:将任意类型数据读出、写入文件的编程,文本数据的输入/输出与处理编程 难点:采用文本型数据还是结构体类的选择
重点:编写多进程并发程序、程序加载和信号机制编程; 难点:信号机制、已结束进程回收
重点:编写多线程程序;线程同于互斥编程实现; 难点:用生产者/消费者问题模型解决实际问题、多线程应用程序性能测量、并发程序设计
重点:利用管道、消息队列、共享内存编写进程间通信程序 难点:IPC信号量使用,数据通信协议
重点:利用网络通信API,编写简单的网络通信程序,运行和验证WEB服务器难点:http协议,WEB服务器运行验证重点:并发WEB应用编程设计 难点:并发程序正确性测试、性能测试,负载均衡编程
32练习
课后讲解小组讨论课后讲解小组讨论
4,54验证
6,7,8
Linux进程控制编程
6设计
讲授 小组讨论
9,10,11,12
Linux多线程编程
8综合
讲授 小组讨论
13,14
Linux进程间通信编程
4验证
讲授 小组讨论
15,16
Linux网络通信编程
4验证
讲授 小组讨论
17,18
并发网络应用编程
8综合
讲授 小组讨论
合计:40
成绩评定方法及标准
考核内容期末考试作业实验课堂测验与期中考试考勤
试卷参考答案
态度、及时性、工整性、规范性、正确性完成量、正确率、报告规范性参考答案
评价标准
权重0.600.150.100.10
缺课1学时扣1分,迟到、早退2次计缺课1学时0.05
大纲编写日期:2018-03-21大纲编写日期:
系(专业)课程委员会审查意见:
我系(专业)课程委员会已对本课程教学大纲进行了审查,同意执行。
系(专业)课程委员会主任签名:
日期:
年
月
日
注:1、课程教学目标:请精炼概括3-5条目标,并注明每条目标所要求的学习目标层次(理解、运用、分析、综合和评价)。本课程教学目标须与授课对象的专业培养目标有一定的对应关系
2、学生核心能力即毕业要求或培养要求,请任课教师从授课对象人才培养方案中对应部分复制(http://jwc.dgut.edu.cn/)
3、教学方式可选:课堂讲授/小组讨论/实验/实训
4、若课程无理论教学环节或无实践教学环节,可将相应的教学进度表删掉。
《计算机系统基础(2)》课程教学大纲
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)