操作系统(十一)线程的概念和特点
2.1.5 線程的概念和特點
? 前面我們介紹了進程,并說到進程是程序的一次執行,是調度的基本單位。那么大家來想一下這么一個場景,我打開了QQ.exe,QQ進程便會運行,在這次運行里我想跟同學視頻聊天、共享文件、文字聊天,那么這三個功能對應的程序便會運行即QQ進程下會多出三個子進程,那么這個三個子進程都會被分配一定的資源,如果其中兩個進程所需要的資源是重復的,一個進程要訪問另一進程的資源就需要進程切換,這個時候就要進行一系列的操作,十分耗費時間以及資源,該如何解決這個問題呢?我們引入了線程的概念。
目錄
2.1.5 線程的概念和特點
2.1.5.1 線程的概念
2.1.5.2 線程的特點
2.1.5.3 引入線程后所帶來的變化
2.1.5.1 線程的概念
? 線程(threads)是一個比進程更小的單位,他的引入是為了減少程序在并發執行時所付出的時空開銷,使 OS 具有更好的并發性。在引入線程這個概念后,資源分配仍是以進程為單位的而進程調度則是以線程為基本單位的。??
? ? ? ? ? ?
2.1.5.2 線程的特點
(1)引入線程后,進程是資源分配的基本單位,線程是調度的基本單位,線程幾乎不擁有資源,只擁有極少量的資源。線程也有運行態、就緒態、阻塞態.
? (2)? ?同一進程下的各個線程間共享內存地址空間,可以直接通過讀/寫內存空間.
2.1.5.3 引入線程后所帶來的變化
(1) 調度:在傳統的操作系統中,作為擁有資源的基本單位和獨立調度、分派的基本單位都是進程。而在引入線程的操作系統中,則把線程作為調度和分派的基本單位,從而可顯著地提高系統的并發程度。在同一進程中,線程的切換不會引起進程的切換,但從一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。
(2) 并發性:在引入線程的操作系統中,不僅進程之間可以并發執行,而且在一個進程中的多個線程之間亦可并發執行.
(3) 擁有資源:不論是傳統的操作系統,還是引入了線程的操作系統,進程都可以擁有資源,是系統中擁有資源的一個基本單位。一般而言,線程自己不擁有系統資源(也有一點必不可少的資源),但它可以訪問其隸屬進程的資源,即一個進程的代碼段、數據段及所擁有的系統資源,如已打開的文件、I/O 設備等,可以供該進程中的所有線程所共享。 (4) 系統開銷:在進程切換時,涉及到當前進程 CPU 環境的保存及新被調度運行進程的 CPU 環境的設置,而線程的切換則僅需保存和設置少量寄存器內容,不涉及存儲器管理方面的操作,所以就切換代價而言,進程也是遠高于線程的。此外,由于一個進程中的多個線程具有相同的地址空間,在同步和通信的實現方面線程也比進程容易。總結
以上是生活随笔為你收集整理的操作系统(十一)线程的概念和特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里对吃货下手了
- 下一篇: 操作系统(十二)线程的实现方式、多线程模