系統程式
System Programming
學期
110-2
學分
3
學分
當期課號
2807
永久課號
SET1458
開課單位
系統工程與科技學士學位學程
授課教師
林政寬
類別
選修
上課時間表
| 節 | 週二 |
|---|---|
2 09:00–09:50 | 系統程式 3 節連堂 |
3 10:10–11:00 | |
4 11:10–12:00 |
* 根據陽明交大上課時間表所列
概述
為什麼需要學習「系統程式設計」 作業系統將「硬體」隱藏起來,提供程式設計介面(API)讓使用者可以間接操作硬體.本課程將在Linux系統上學習如何控制硬體,同時了解計算機硬體的操作邏輯. 同時,Linux是目前市佔率最高的作業系統,特別是在行動裝置與服務器的相關系統. 我們將會在Windows和MacOS中,通過VM安裝Linux,方便課程的實驗與操作. 本課程的目標在於讓修課同學: .熟悉UNIX相關作業系統的操作環境。 .理解UNIX相關作業系統之系統架構與系統服務。 .學習UNIX系統服務之應用程式介面(API)的相關標準。 .有能力在UNIX相關作業系統上,以C程式語言開發程式。 .有能力撰寫一產生多行程的程式,並處理多行程間的通訊與同步。 .有能力分析程式的正確性、安全性與執行效能。
先修科目
C Programming Language
教學方式
教材:PPT投影片 教材:PPT投影片 線上上課平台: Google Meet 會議 視訊通話連結:https://meet.google.com/uga-xqqb-dfv 或撥打以下電話號碼:(US) +1 240-532-3641 PIN 碼:592 336 293#
評分方式
出席與上課情形:20% 作業: 20% 期中考成績: 30% 期末考成績: 30%
週次計畫
| 週次 | 主題 |
|---|---|
| 第 1 週 | 介紹Linux系統的特色 |
| 第 2 週 | 在VMware上安裝Linx並設定Linux |
| 第 3 週 | 基本程式開發設計,gcc、gdb、git等使用方式 |
| 第 4 週 | file hole、perror、flock、lockf三種同步方式 |
| 第 5 週 | 使用flock和lockf分別設計「只允許一個人寫入」的小型資料庫 |
| 第 6 週 | buffer的三種形式,C函數庫中的setvbuf功能 |
| 第 7 週 | 標準的UNIX的目錄及檔案屬性 |
| 第 8 週 | hardlink及softlink |
| 第 9 週 | 期中考 |
| 第 10 週 | chmod、ACL、inotify |
| 第 11 週 | fork、wait、setaffinity、nice |
| 第 12 週 | execve及zombie process |
| 第 13 週 | SIGKILL、SIGSTOP、SIGINT、SIGALARM |
| 第 14 週 | sigaction |
| 第 15 週 | pipe和fifo |
| 第 16 週 | 設計nohup程式 |
| 第 17 週 | pthread |
| 第 18 週 | 期末考 |
教科書
Advanced Programming in the UNIX® Environment(APUE) UNIX環境高級編程(第3版),作者: (美)史蒂文斯,出版社:人民郵電出版社,出版日期:2014/06/01