1. 程式人生 > >python之作業系統介紹,程序的建立

python之作業系統介紹,程序的建立

作業系統(英語:operating system,縮寫作 OS)是管理計算機硬體與軟體資源的計算機程式,同時也是計算機系統的核心與基石。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供一個讓使用者與系統互動的操作介面。

作業系統簡單介紹:

  多道程式設計技術

    空間複用

    時間複用

    程序之間是空間隔離的

  分時系統

  實時系統

  通用作業系統

併發:偽並行,看著像同時執行,其實是任務之間的切換(遇到io切換的會提高程式碼效率) ,任務切換+儲存狀態(儲存現場

)

並行:真正的同時在執行,應用的是多核技術(多個cpu)

 

程序三狀態:就緒(等待作業系統排程去cpu裡面執行)      執行  阻塞

 

 

提交任務的方式:同步非同步   任務的執行狀態:阻塞非阻塞

  非同步:任務的提交方式,多個任務提交出去,同時執行

 分類:

  同步阻塞

  非同步阻塞:

  非同步非阻塞:

  同步非阻塞:

程序的2種建立方式:

第一種:

import time
from multiprocessing import
Process def f1(): time.sleep(3) print('大力是豬') print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) def f2(): time.sleep(3) print('還偷偷睡覺') print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) if __name__ == '__main__': p1 = Process(target=f1,) p2 = Process(target=f2, ) p1.start() p2.start()

 

 第二種方式: 建立一個類,繼承Process

from multiprocessing import Process
class MyProcess(Process):
    def __init__(self,n):
        super().__init__()  #別忘了執行父類的init
        self.n = n
    def run(self):
        print('%s快要睡著了'%self.n)

if __name__ == '__main__':
    p1 = MyProcess('大力')
    p1.start()

 傳參方式:

from multiprocessing import Process
# 演示兩種傳參方式
def f1(n):
    print(n)

if __name__ == '__main__':
    # p1 = Process(target=f1,args=('大力',)) #建立程序物件
    p1 = Process(target=f1,kwargs={'n':'大力'}) # 建立程序物件    kwargs={函式中的形參作為key:值}
    p1.start()  #給作業系統傳送了一個建立程序的訊號,後續程序的建立都是作業系統的事兒了

 

for 迴圈建立程序:

import time
from multiprocessing import Process

def f1(i):
    time.sleep(3)
    print(i)
if __name__ == '__main__':
    for i in range(20):
        p1 = Process(target=f1,args=(i,))
        p1.start()

 

join()方法:主程序等待子程序執行完才繼續執行

import time
from multiprocessing import Process

def f1():
    time.sleep(2)
    print('我是f1')

def f2():
    time.sleep(2)
    print('我是f2')

if __name__ == '__main__':
    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主程序等待子程序執行完才繼續執行
    
    print('p2來了')
    p2 = Process(target=f2,)
    p2.start()
    p2.join()
    
    print('我要等了...等我的子程序...')
    print('我是主程序!!!')