【隨堂筆記】作業系統與檔案系統基礎


  • 作業系統:常駐於記憶體中的程式,其他程式可以在需要使用時從硬碟中載入。(需要統籌電腦資源和管理軟體與硬體之間的互動等)
    主要任務:CPU 中央處理器管理、Memory 記憶體管理、File 檔案管理 和 I/O 週邊裝置管理
  • CPU process:

    (來源:第 12 期電腦科學概論 & 程式設計思維入門共學營)
    新產生 (new):行程正在新產生中
    執行 (running):指令正在執行
    等待(waiting):等待某個事件的發生(ex. 等待 Input/Output 輸入輸出)
    就緒 (ready):該行程正等待指定一個 CPU 處理器來執行
    結束 (terminated):該行程完成執行
  • 一般使用下列三種記憶體管理:
    routine 動態載入法:當使用到再載入記憶體
    overwrite 覆蓋法:非共用的記憶體部分在沒使用時可以透過覆蓋來增加使用空間
    swap 交換法:透過使用硬碟當作輔助記憶體,在記憶體和硬碟中切換來增加記憶體使用空間
    p.s. 通常為了保護作業系統的記憶體,記憶體位址會在從虛擬位址對應到實際實體位址時會作檢查,避免影響到作業系統所使用的記憶位址
  • File 檔案管理
    一般路徑分為兩種:
    相對路徑(relative path):以相對於目前資料夾所在位置來定義路徑,所以路徑可能會隨著目前資料夾位置改變而改變。其中 . 代表目前資料夾位置,.. 代表上一層資料夾,若是 / 則是指到根(root)資料夾
    絕對路徑(absolute path):一個絕對位置的概念,不會因為目前目錄位置而改變
    NOTE !!
    Windows 需要在路徑字串前加上 r 代表後面接的是 raw string 才不會把 \ 視為跳脫字元
    r'C:\Program Files (x86)\Tesseract-OCR\tesseract'
    
    若沒使用 r 則需要跳脫字元 \ 來表示路徑符號 \:
    'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'
    
    Linux 和 MacOS 則沒有這個問題,因為其路徑符號為斜線 /
  • 使用 open('檔案路徑', '讀寫模式') 來取得 file object。最後記得 close 關掉檔案。記得開檔案後要關掉,避免造成記憶體流失(memory leak) 系統資源的浪費。
    file_object = open('./demo.txt', 'r')
    file_object.close()
    
  • Python 讀取檔案常用指令:read([size])readline()readlines()
    (1) read([size]) -> size = byte,從檔案當前位置起讀取 size 大小的位元組(bytes)
    file_object = open('./demo.txt', 'r')
    # 讀取全部檔案案內容變成字串
    print(file_object.read())
    # 沒有填size,最後會回傳整個檔案內容
    
    (2) readline([size]) -> 適合用於大型檔案
    # 每次讀出一行內容,因此在讀取時佔用記憶體較小
    file_obj = open('./data.txt', 'r')
    # 每次讀取一行,_ 是一個佔位符號,當沒有使用到變數時可以使用
    for _ in range(3):
       print(file_obj.readline())
    file_obj.close()
    
    (3) readlines() -> 不適用於大型檔案
    # 讀取整個檔案所有行,並將每行內容儲存在一個列表(list)中,每一行作為一個列表元素。
    # 讀取內容成為列表,檔案一行代表一個元素,可以使用迭代方式操作
    file_content_list = file_object.readlines()
    for file in file_content_list:
       print(file)
    file_object.close()
    
  • Python 寫入檔案:write()
    file_object = open('./demo.txt', 'w')
    # 若需要換行可以於字串最後加入: \n 為換行符號
    file_object.write('Java is awesome\n')
    file_object.write('Python is awesome')
    file_object.close()
    
  • Windows 和 MacOS/Linux 常見指令對照
Windows MacOS/Linux 指令說明
cd cd 切換工作目錄(移動到資料夾)
cd pwd 取得目前工作目錄所在位置
dir ls 列出目前檔案列表
move mv 移動檔案
set export 設定環境變數
del rm 刪除檔案
cls clear 清除終端機畫面上內容
copy cp 複製檔案
exit exit 離開終端機






你可能感興趣的文章

extends & type narrowing

extends & type narrowing

CSS-[box-shadow]-陰影效果

CSS-[box-shadow]-陰影效果

BS5 使用 SCSS 覆蓋新增Variable

BS5 使用 SCSS 覆蓋新增Variable






留言討論