操作系統及ThreadX簡介
操作系統及ThreadX簡介 軟件二部 2006.09 主要內容 多任務操作系統概述 ThreadX簡介 關于驅動的交流 操作系統概述 什么是操作系統 管理計算機的所有資源,并為應用程序提供服務的最重要的系統軟件 操作系統的目的 為用戶編程提供簡單的接口,屏蔽復雜的硬件細節 有效管理并協調分配系統的軟硬件資源,提高資源利用率和計算機系統的效率 多任務操作系統概述 任務調度 通信 I/O 內存管理 文件系統 時間管理 任務 多任務操作系統(Multitasking operating system) 可以同時并發執行多個進程/線程 操作系統維護進程/線程表,記錄所有正在運行的任務的當前狀態 內存地址空間(address space):可執行代碼、數據、棧(進程和線程是有區別的) 寄存器:指令計數器、棧指針寄存器等 其他信息 進程和線程的區別 進程和線程的主要差別體現在不同的操作系統資源管理方式 進程有獨立的地址空間 線程有自己的堆棧,但線程之間共享地址空間 任務調度方法 時間片調度 優先級調度 靜態優先級 動態優先級 混合調度 通信 通信機制在任務之間提供了通信的能力 管道 Socket 事件 信號 消息 I/O 一般來說I/O設備分為兩類 塊設備 地址固定,大小固定 可以塊讀寫 如Flash設備 字符設備 以字符流方式收發 如串口等 I/O 很多操作系統允許將I/O設備看作文件 塊特殊文件(block special files) 字符特殊文件(character special files) I/O 設備 地址 控制寄存器 數據緩沖 中斷 I/O軟件目標 設備無關 程序可以操作任意設備 無需預先指定設備 統一命名 通過文件名/字符串/ID方式使用統一的操作 錯誤處理 盡可能在接近硬件的層次處理硬件錯誤 設備接口設計 同步設備vs.異步設備 查詢vs.中斷 軟件緩沖 共享設備vs.獨占設備 內存管理 理想編程希望內存和實際使用中的內存性能存在沖突: 大vs.有限 快vs.部分速度快 穩定vs.有可能受干擾 內存管理的方式 分級管理 單級管理 文件系統 文件系統包含的操作 目錄 文件 文件系統的組成方式 文件 ThreadX線程調度-控制塊結構 typedef struct TX_THREAD_STRUCT { ULONG tx_thread_id; /* Control block ID */ ULONG tx_run_count; /* Thread's run counter */ VOID_PTR tx_stack_ptr; /* Thread's stack pointer */ VOID_PTR tx_stack_start; /* Stack starting address */ VOID_PTR tx_stack_end; /* Stack ending address */ ULONG tx_stack_size; /* Stack size */ ULONG tx_time_slice; /* Current time-slice */ ULONG tx_new_time_slice; /* New time-slice */ struct TX_THREAD_STRUCT *tx_ready_next, *tx_ready_previous; CHAR_PTR tx_thread_name;/* Pointer to thread's name */ UINT tx_priority; /* Priority of thread (0-31)*/ UINT tx_state; /* Thread's execution state */ UINT tx_delayed_suspend;/* Delayed suspend flag */ UINT tx_suspending; /* Thread suspending flag */ UINT tx_preempt_threshold;/* Preemption threshold */ ULONG tx_pr