一、簡介
- 學校:國立中山大學
- 課程:高等作業系統 (Advanced Operation Systems, AOS)
- 教授:王友群
- 系所:資訊工程所
- 學分:3學分
- 學期:110-1
- 宗宗的學期總成績:A+(99)
二、評分
- 程式作業:30%
- 口頭報告:10%
- 期中考:30%
- 期末考:30%
AOS有三項作業、一項團體口頭報告、期中與期末考。作業1為實作與比較3+1個分頁替換演算法 (page replacement algorithm)在2+1種資料的表現,演算法分別有Optimal、FIFO和ARB,資料有隨機和區域性,而第4個演算法和第3種資料自行設計。要求為自行設計的演算法不能和上課所提到演算法一樣,可以自創或改良,並且只要在其中一種資料中,贏過FIFO和ARB即可。作業2要實作一組socket程式(伺服端與客戶端),客戶要能在伺服端中建立、更改、上傳、下載文件並且要實作系統保護 (protection)機制,以免資料存取時,發生衝突。作業3要實作一個手機APP,題目不限,自行發揮。我們這組是實作一個多行程最短距離排程工具,可應用在客戶拜訪、景點安排、工作規劃,以及支援Google地圖的多點導航。
口頭報告準備約20分鐘的長度不含Q&A,題目限於和作業系統有關的主題即可,深度不用到論文等級,大約維基百科等級即可。報告通常會排在第三節課,然後老師會點人問問題,一次點2個人。我們這組是報告Chrome OS,其他組別有報告ROS、Virtual Machine、HarmonyOS、Debian、Win11、Docker、Android、Ubuntu、MS-DOS、Kali Linux、iOS、常見穿戴式裝置作業系統、Windows、centOS、BlackBerry OS、Windows Subsystem for Linux、Real-Time Operating System、Oracle Linux、Java Virtual Machine。
期中與期末可以帶A4大抄,雙面都可以抄,然後要用原字筆寫名字與學號,內容可用鉛筆。建議如果名字與學號寫錯,就直接換一張新的A4紙,不要再塗改了。因為我學長就因為名字寫錯塗改,然後期末大抄就被收走了。考試平均分為70分,所以練好近5年的考古題,就可以拿高分。我建議大抄可以直接抄1~3年的考古答案,會比較划算。我期中沒抄考古答案只拿68分,但期末有抄考古答案就拿了94分。
老師在期中過後,會有加分小考的部分,10分鐘開書考4題,一題一分,直接加到期中考試,我原本68分,直接變成84分。作業3也開放加分項目,APP會有三個滿分等級,分別為A (200)、B (150)、C (100)。花三分鐘時間,遊說老師與助教APP的等級,基本上盡量說自己為A,老師與助教會依實用性、新穎性、技術性去調等級,最後20組中,有9組A級與11組B級。
然後切記分組慎選組員,像我們這組,被評為A級,且最後老師給我們200分。原本我組員還因為我桶出一個bug,導致APP運作不了而胃痛。聽到我們拿到200分,胃痛就瞬間好了,而且他總分還飆到80多分,他考試約50~60多分。
三、老師評價
王友群老師 |
此連結是王友群老師專訪,可以先去看一下。王老師上課的節奏算快,需要專心上課才能跟的上,一個不留神,很快就會到下一頁PPT。不過因為內容比較多,且三節課中,前兩節拿來上課,第三節拿來報告,所以其實上課時間也不多,所以上的快是合理的,且老師的進度都能在他表定的時間內上完。
老師的PPT整理的蠻好的,字不多會配一些圖,且重點的關鍵字用會紅色與藍色標示,課後自己複習也都能看得懂,PPT會放在王老師實驗室教學分頁中。老師蠻願意釋出一些加分方式,像是:加分小考、考試大抄、作業加分,所以整體來說只要好好把握加分幾會,想要PASS不難。
四、課程分析
前半學期
Introduction to OS、Management of Virtual Memory - Demand Paging, Page Replacement, Thrashing, Kernel Page Allocation、System Protection - Protection Domain, Access Matrix, Revocation, Capability-based Systems & Language-based Protection、System Security - Threats, Attacks, Cryptography, Security Defenses。
前半部主要有三大部分:虛擬記憶體 (Virtual Memory)、系統保護 (Protection)、系統安全 (Security)。虛擬記憶體使得應用程式認為它擁有連續可用的記憶體,而實際上實體記憶體通常被分隔成多個記憶體碎片,還有部分暫時儲存在外部磁碟記憶體上,在需要時進行資料交換。系統保護在防內奸,因為合法的process不一定會做安全的行動,它可能會做出一些危險的行為,所以要設下一些規範!系統安全在防外敵,避免遭惡意程式破壞。
後半學期
Distributed OS、Distributed File Systems、Distributed Synchronization - Synchronize, Deadlocks、Real-time Systems、Multimedia Systems。
後半部就聚焦在分散式系統、即時性系統、多媒體系統。分散式系統可以把多台電腦串連起來,故有四個優點:(1)資源共享:以前電腦很貴,所以會使用分散式技術,讓多個使用者使用同一台電腦的資源。(2)計算加速:現在會想要把一些工作分割成不同的區塊,再把這些區塊分給其他電腦運算,最後再將這些答案整合起來,這樣就可以完成很複雜的運算。(3)可靠性:如果我的電腦某些功能壞掉,可以由其他通用型電腦來支援我。(4)溝通:和其他電腦溝通。
系統可以分散,檔案系統也可以分散,著名的分散式檔案系統Google雲端,其檔案可能是儲存在不同的電腦中,其中就必須要處理命名、搬移、修改、復原⋯⋯等問題。當然如何同步與處理死結發生,也是分散式系統會遇到的大問題。
很多即時性系統都是嵌入式系統,而嵌入式或即時性作業系統中,使用者和作業系統的地位幾乎一樣,這樣就不用把事情交給作業系統做,速度會較快。所以可以發現,典型的作業系統,使用者和硬體間會有作業系統去處理底層事務,作業系統就像是使用者的代理人,畢竟不能期待使用者都熟悉硬體的運作,一個不小心,電腦就會被搞壞。XD
留言
張貼留言