程序和執行緒的一些知識整理
1.什麼是程序?
執行程式的封裝,作業系統進行資源排程分配的基本單位。
2.什麼什麼是程序表?
由一個結構陣列組成,每個程序佔一個程序表項,表項包含程序的重要資訊(程式計數器、堆疊指標、記憶體分配情況、檔案狀態、賬戶排程資訊等),保證程序能隨後再次啟動。
3.什麼是並行和併發?
併發:單個核心在很短時間分別執行多個程序。
並行:多個核心同時執行多個程序。
4.程序的幾個狀態
執行態:程序佔用cpu;
就緒態:由於其他程序在執行二暫時停止執行;
就緒掛起:程序在外存,進入記憶體馬上執行;
阻塞態:程序在等待某一事件而暫時執行;
阻塞掛起:程序在外存,並等待某一事件發生。
5.什麼是程序控制塊(PCB)?
程序存在的唯一標識,用於作業系統感知程序,有以下資訊:
程序描述資訊:程序識別符號、使用者識別符號等;
程序控制和管理資訊:程序狀態、優先順序等;
程序資源分配清單:虛擬記憶體空間資訊地址、開啟檔案列表等;
cpu相關資訊:cpu暫存器的值,便於程序重斷點處繼續執行。
6.程序切換為何比執行緒慢?
程序的切換涉及到虛擬地址空間的切換,而執行緒沒有。虛擬地址轉換為實體地址涉及頁表查詢,頁表查詢很慢,因此常利用TLB快表來快取常用的地址對映,頁表切換或導致TLB失效,虛擬地址轉為實體地址就會變慢,而執行緒不會。
7.什麼是守護程序?
守護程序是指在後臺運⾏的,沒有控制終端與它相連的程序。它獨⽴於控制終端,週期性地執⾏某種任務。 Linux的⼤多數伺服器就是⽤守護程序的⽅式實現的,如web伺服器程序http等。
8.什麼是多程序?
通過父程序fork()多個子程序,稱為多程序。父子程序除pid號不相同外,幾乎所有部分一樣。兩者共享資料,但在子程序寫資料時,會將公共資料重新拷貝一份再修改,而不是在同一塊資料修改。
9.什麼是殭屍程序?如何避免?
多程序情況下,子程序結束後,父程序還沒捕獲子程序退出狀態前,子程序變為殭屍程序。目的在於維護子程序資訊便於父程序捕獲。殭屍程序會佔用核心資源,因此要避免殭屍程序的產生和持續時間。
避免:呼叫wait等待子程序會導致父程序阻塞,呼叫waitpid不會產生阻塞。忽略signal訊號可以把殭屍程序交給init程序處理。而不是等待wait回收資源。
相關推薦
程序和執行緒的一些知識整理
1.什麼是程序? 執行程式的封裝,作業系統進行資源排程分配的基本單位。
【作業系統】【程序管理】程序和執行緒相關知識點
併發和並行 併發:兩個或多個事件在同一時間間隔內發生; 並行:兩個或多個事件在同一時刻發生;
java執行緒基礎知識整理
目錄 執行緒基本概念 1、java實現執行緒 2、執行緒的生命週期 3、執行緒常用的方法
作業系統(四)—— 程序和執行緒基礎
概述 在前幾篇講記憶體管理的時候,提到地址空間是記憶體的抽象。那程序就是CPU的抽象,一個程式執行起來以後就是一個程序,執行緒是程序創建出來的,其本身並不能獨立執行,一個程序可以創建出來多個執行緒,他
第十章:Python高階程式設計-多執行緒、多程序和執行緒池程式設計
第十章:Python高階程式設計-多執行緒、多程序和執行緒池程式設計 Python3高階核心技術97講 筆記
程序和執行緒是什麼 關係與區別
程序 程序是程式的一次執行過程,是一個動態概念,是程式在執行過程中分配和管理資源的基本單位,每一個程序都有一個自己的地址空間,至少有 5 種基本狀態,它們是:初始態,執行態,等待狀態,就緒狀態,終止狀態。
Java多執行緒詳解(二)------如何建立程序和執行緒
1、在 Windows 作業系統中建立程序 在 windows 作業系統中,我們建立一個程序通常就是開啟某個應用軟體,這便在電腦中建立了一個程序。更原始一點的,我們在命令提示符中來做(我們以開啟記事本這個程序為例):
程序和執行緒的關係
程序與執行緒 程序:一個正在執行的程式執行緒:執行程式的各個任務 一個程序內可以包含多個執行緒每條執行緒執行不同的任務
程序和執行緒上下文切換_編碼人員:上下文切換對於計算機和關係而言都很難
程序和執行緒上下文切換 Clive Thompson is a longtime contributing writer for the New York Times Magazine and a columnist for Wired and now has a new book out called "Coders."
淺析瀏覽器是如何排程程序和執行緒的
一、執行緒和程序 首先我們來回顧下執行緒和程序的概念: 程序:CPU進行資源分配的基本單位
Python多程序和執行緒
技術標籤:Pythonpython多執行緒 1、什麼是程序/執行緒 眾所周知,CPU是計算機的核心,它承擔了所有的計算任務。而作業系統是計算機的管理者,是一個大管家,它負責任務的排程,資源的分配和管理,統領整個計算機
c# 程序和執行緒的區別與聯絡
引入執行緒是為了減少程式在併發執行時所付出的時空開銷。 屬性: 輕型實體。它不擁有系統資源,只是有一點必不可少的、能保證獨立執行的資源。
程序和執行緒
程序和程式的聯絡: 程式 = 檔案(靜態的可執行檔案) 程序 = 執行中的程式 = 程式+執行狀態
Python程序和執行緒例項詳解
前言 程序是什麼? 程序就是一個程式在一個數據集上的一次動態執行過程。程序一般由程式、資料集、程序控制塊三部分組成。我們編寫的程式用來描述程序要完成哪些功能以及如何完成;資料集則是程式在執行過程中所需要
JavaScript中程序和執行緒的區別是什麼
區別:程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其它程序產生影響;而執行緒只是一個程序中的不同執行路徑(一個程序由一個或多個執行緒組成),執行緒之間沒有單獨的地址空間(共享記憶體),一個
C語言是菜鳥和大神的分水嶺!從C語言到記憶體,從記憶體到程序和執行緒!
作為一門古老的程式語言,C語言已經堅挺了好幾十年了,初學者從C語言入門,大學將C語言視為基礎課程。不管別人如何抨擊,如何唱衰,C語言就是屹立不倒;Java、C#、Python、PHP、Perl 等都有替代方案,它們都可以倒下
Python程序和執行緒
開始Python的複習!(以前學的忘了好多-_-) 主要參考的是Github上的一個專案:https://github.com/jackfrued/Python-100-Days
程序和執行緒概念
程序概念 程序是一個具有一定獨立功能的程式在一個數據集上的一次動態執行的過程,是作業系統進行資源分配和排程的一個獨立單位,是應用
python系統程式設計-什麼是任務、程序和執行緒01
•什麼是任務、程序和執行緒? 任務:作業系統可以同時執行多個任務。例如:一邊上網,一邊聽音樂。這就是作業系統的多工。作業系統會輪流讓各個任務交替執行,但由於CPU的執行實在是太快了,給我們感覺就像所有任
android程序和執行緒,一線網際網路移動架構師NDK模組開發!成功定級騰訊T3-2
開頭 都說今年的形勢不好,各種找工作不順利,但我身邊就有一位同學,每次面試都拿到了offer,我特意邀請他來給大家分享下經驗,雖然不同人的技術領域未必相同,但很多東西是相通的,希望本文能對大家有所幫助。