我的內容來自於《馬哥Linux2016最新高薪運維視頻課程-Nginx應用基礎及配置詳解》 httpd:MPM prefork,worker,event prefork:主進程,生成多個子進程,每個子進程處理一個請求; worker:主進程,生成多個子進程,每個子進程再生成多個線程,每個線程響應一個 ...
我的內容來自於《馬哥Linux2016最新高薪運維視頻課程-Nginx應用基礎及配置詳解》 httpd:MPM prefork,worker,event prefork:主進程,生成多個子進程,每個子進程處理一個請求; worker:主進程,生成多個子進程,每個子進程再生成多個線程,每個線程響應一個請求 event:主進程,生成多個子進程,每個子進程響應多個請求 I/O類型: 同步I/O和非同步I/O:synchronous,asynchronous 關註的是被調用者的消息通知機制 同步I/O:調用發出之後結果不會立即返回,但一旦返回,則返回既是最終結果 非同步I/O:調用發出之後,被調用方立即返回消息,但返回的並不是最終結果;被調用方完成任務後會通過狀態、通知機制等來通知調用者,或者通過回調函數來處理結果 阻塞I/O和非阻塞I/O:block,nonblock 關註的是調用者等待被調用者返回調用結果時的狀態 阻塞:調用結果返回之前,調用者會被掛起,調用者只有在得到返回結果之後才能繼續 非阻塞:調用者在結果返回之前,不會被掛起,即調用不會阻塞調用者 I/O模型: blocking I/O:阻塞式I/O nonblocking I/O:非阻塞式I/O I/O multiplexing:復用型I/O 阻塞型,是阻塞在內核的代理上;當在內核代理上阻塞時,其調用者是沒有阻塞的,可以發送請求 signal driven I/0:事件驅動式I/O 一個進程可以對應多個請求 asynchronous I/O:非同步I/O 性能得到了極大提高 例如:在磁碟上做一次read操作 一個進程向磁碟發起一次請求後,會先通知內核,內核再把磁碟的數據載入到內核記憶體,再從內核記憶體把數據拷貝一份到進程記憶體中;真正執行I/O過程的階段為內核把數據拷貝給進程記憶體的操作 (1)等待數據準備好,從磁碟到內核記憶體 (2)從內核記憶體複製到進程記憶體
