學習啦 > 學習電腦 > 操作系統(tǒng) > 操作系統(tǒng)基礎知識 > 關于操作系統(tǒng)的基本常識

關于操作系統(tǒng)的基本常識

時間: 佳洲1085 分享

關于操作系統(tǒng)的基本常識

  關于操作系統(tǒng),我們需要掌握一些基本的常識問題。下面由學習啦小編為大家整理了關于操作系統(tǒng)的基本常識的相關知識,希望對大家有幫助!

  關于操作系統(tǒng)的基本常識

  操作系統(tǒng)基本常識1:進程與線程

  進程是一個具有獨立功能的程序的一次運行活動,是系統(tǒng)進行資源分配的一個基本單元。

  線程是進程的一個實體,是cpu調度的基本單元,自己并不擁有系統(tǒng)資源,他的資源和該進程內的其他線程共享。、

  引入線程的優(yōu)點:

  調度開銷小,易于調度;

  方便的實現(xiàn)并發(fā);

  充分利用多處理器的性能;

  線程和進程的不同:

  線程必定屬于某個進程;但是一個進程可以擁有多個線程并且至少擁有一個線程。

  不同進程互相獨立,資源分開,但是線程共用資源,沒有獨立的內存空間。

  進程是程序的一次執(zhí)行,線程可以理解為該程序中一個片段的執(zhí)行。

  程序和進程和線程的關系:

  獨立功能的一次程序執(zhí)行可以開啟一個進程,同程序可以多次開啟形成多個進程,每個進程中又可以開啟線程,當然每個程序都至少會有一個線程,比如main

  線程同步的方法:

  互斥量,信號量,條件變量,臨界區(qū)。

  操作系統(tǒng)基本常識2:內核線程和用戶線程

  內核線程的建立和銷毀都是操作系統(tǒng)負責,通過系統(tǒng)調用完成。

  用戶線程不需要操作系統(tǒng)負責,利用線程函數(shù)庫調用完成創(chuàng)建銷毀同步管理,并且允許自己定制自己的調度算法,調度的代價比內核線程的代價低很多。

  操作系統(tǒng)基本常識3:內存管理

  方式:按照控件利用率排序的話為:塊式管理<頁式管理<段式管理<段頁式管理(其中段頁式管理每次操作要訪問三次內存)

  分頁和分段的區(qū)別:

  頁是信息的物理單位,分頁是出于系統(tǒng)管理的需要

  段式信息的邏輯段位,分段是為了滿足用戶的需要,每次分頁的大小也取決于用戶

  虛擬內存:虛擬內存是內存管理的一種技術,相對于物理內存而言,可以理解為假內存,使得應用程序把內存當做連續(xù)可用,允許程序員編寫比實際系統(tǒng)擁有的內存大得多的程序,實際上他的有一部分內存暫時存儲于外部存儲上面,在需要時在進行數(shù)據(jù)交換

  虛擬內存的好處:

  擴大地址空間

  內存保護。每個進程獨自運行在自己的虛擬內存空間,互相不干擾,而且虛擬內存還對特定的內存地址進行寫保護。

  當進程需要通信時,可以采用虛存共享的方式實現(xiàn)。

  虛擬內存的壞處:

  建立很多的數(shù)據(jù)結構,占用額外的內存。

  虛擬地址到物理地址的轉換,增加了執(zhí)行時間。

  頁面的換入換出需要磁盤io。

  內存碎片:多次進行內存分配時就會出現(xiàn)內存碎片。

  內存格式:(用戶使用段)(空白段)(用戶使用段)

  內碎片:分配給用戶的存儲空間(用戶使用段)沒有使用完,其他程序也無法使用的部分內存,直到進程釋放。

  外碎片:比如上面的空白段,他不屬于任何進程,但是又由于他太小不足以給與下一個進程分配空間,造成了外碎片。

  操作系統(tǒng)基本常識4:cache替換算法

  數(shù)據(jù)可以存放在cpu和內存中,但是cpu處理速度快,容量小,內存容量大,但是轉給cpu的速度慢。所以就需要cache來做一個折中,先從內存調入cache再從cache調入cpu,又由于主存的快比cache多所以從主存調塊到chche中的時候,會出現(xiàn)該塊映射的映射的cache已經(jīng)被使用的情況,需要cache被迫騰出其中的某一塊來接受新塊,就需要替換。

  隨機算法(RAND)

  先進先出算法(FIFO)

  近期最少使用算法(LRU)

  最優(yōu)替換算法(OPT)

  操作系統(tǒng)基本常識5:靜態(tài)鏈接和動態(tài)鏈接

  靜態(tài)鏈接就是把要調用的函數(shù)或者是過程直接拷貝到可執(zhí)行文件中,當多個程序都需要調用該函數(shù)的時候,比較浪費內存資源。

  動態(tài)鏈接就是并沒有在被調用時復制到可執(zhí)行文件中,而是加入了一些重定位信息,當需要調用的時候到這里來執(zhí)行就ok了。

  靜態(tài)鏈接庫:.lib文件,里面不允許再包含其他的動態(tài)或者靜態(tài)庫

  動態(tài)鏈接庫:.dll文件

  操作系統(tǒng)基本常識6:庫函數(shù)調用與系統(tǒng)調用

  庫函數(shù)調用屬于上層,運行在用戶空間,屬于程序和用戶的一部分,不同的系統(tǒng)但是使用相同的庫那么效果就是一樣的。

  系統(tǒng)調用是調用內核提供給應用程序的接口,屬于系統(tǒng)的一部分,而且不同的系統(tǒng)的系統(tǒng)調用是不一樣的。

  操作系統(tǒng)基本常識7:用戶棧和內核棧

  內核在創(chuàng)建線程的時候,會為進程創(chuàng)建相應的堆棧,每個進程會有兩個棧,一個用戶棧,一個內核棧,當進程在用戶空間時使用用戶棧,在內核空間時使用內核棧。并且通過設置堆棧指針寄存器的內容可以在用戶棧和內核棧之間相互轉換。

3631606