了解程序狀態以及環境變數的關係

2021-12-30 03:07:15 字數 1386 閱讀 6198

一、程序狀態

1、正在執行的程序有以下幾種狀態

—— r執行狀態(running):表示程式要麼在執行中要麼在執行佇列裡

—— s睡眠狀態(sleeping):意味著程序在等待事件的完成(也叫做可中斷睡眠)

—— d磁碟休眠狀態(disk sleep):這個狀態的程序通常會等待i/o的結束(不可中共斷睡眠)

—— t停止狀態(stopped):通過傳送sigstop訊號

來停止程序,被暫停的程序可以通過傳送sigcont訊號來讓程式繼續執行

—— x死亡狀態(dead):是乙個返回狀態,不會在任務列表裡看到這個狀態

s 和 t 的區別:s狀態表明的是這個程序做的事情就是睡眠本身,t狀態則表示這個程序沒有做任何事情

2、 殭屍狀態(zombies):

當程序退出並且子程序沒有讀取到子程序退出的返回**時,就會產生殭屍程序

殭屍程序會以終止狀態保持在程序表中,並且會一直等待父程序讀取退出狀態**,因此,只要子程序退出,父程序還在執行,但父程序沒有讀取子程序狀態,則子程序進入z狀態

殭屍程序的危害:

如果子程序退出而父程序不讀取子程序的狀態,這時子程序的狀態就必須被維持下去,

而維護退出狀態需要用資料維護,這部分的資料屬於程序基本資訊,儲存在task_struct(pcb)中,

如果乙個父程序建立了很多子程序,都沒有**,這時,就會造成資源的浪費(記憶體洩漏)

3、孤兒程序:

如果乙個子程序任在執行,而他的父程序提前退出,那麼等到子程序執行完成後,就沒有父程序來**他了,這時,子程序就成為「孤兒程序」

孤兒程序被1號init程序領養,即由init程序**

二、程序優先順序

1、概念

cpu資源分配的先後順序就是指程序的優先權(priority)

優先權高的程式有優先執行的權利

2、檢視系統程序

uip:執行者的身份

pid:程序代號

ppid:其父程序代號

pri:程序優先順序,其值越小越早被執行

ni:nice值,表示程序可被執行的優先順序的修正數值

三、環境變數

1、基本概念:

環境變數:一般值在作業系統中用來指定作業系統執行環境的一些引數

2、常見環境變數:

path*:指定路徑的搜尋命令

home*:指定使用者的主工作目錄(登陸到linux時的預設目錄)

histsize*:指儲存歷史命令的條數

shell*:當前shell,他的值通常是/bin/bash

了解環境變數並設定環境變數

設定環境變數前,我們先了解一下什麼是環境變數。環境變數是當要求系統執行乙個程式而沒有告訴它程式所在的完整路徑時,系統除了在當前目錄下面尋找此程式外,還應到path中指定的路徑去找 環境變數分為系統環境變數和使用者環境變數。環境變數是指系統環境變數,對所有使用者起作用 而使用者環境變數只對當前使用者起...

環境變數初步了解

1.環境變數概念 1 2.環境變數的應用 1 3.在程式中得到環境變數 1 4.與環境變數有關的程式報錯原因 1 1.環境變數概念 a.環境變數一般是指在作業系統中用來指定作業系統執行環境的一些引數,比如臨時資料夾位置和系統資料夾位置等。b.這點有點類似於 dos時期的預設路徑,當你執行某些程式時除...

環境變數以及ControlSet

使用者環境變數 hkey current user environment 系統環境變數 hkey local machine system controlset001 session manager environment path hkey local machine system contro...