原创 信號量(semaphore)

進程間通信-信號量1、爲什麼要使用信號量爲了防止多個程序同時訪問一個共享資源而引發的一系列問題,故有這樣一種方法,在任何一個時刻只有一個執行線程訪問代碼的臨界區(臨界區是指訪問臨界資源的代碼),而信號量就可以提供這樣的訪問機制,同一時刻只允

原创 信號(signal)

一 信號的基本概念信號機制是進程間相互傳遞消息的一種方法,信號全稱軟中斷信號,也有人稱作軟中斷,從它的命名可以看出,它的使用很像中斷,所以,信號是進程控制的一部分。(1)進程之間可以通過系統調用kill發送軟中斷信號(2)內核也可以因爲內部

原创 return x與exit(x)到底有什麼區別

return x與exit(x)到底有什麼區別書中說main函數return相當於exit(main(argc,argv))但實踐中出了點問題運行結果:如果把exit換成return確不會。基礎知識首先說說fork與vfork的區別●for

原创 設計模式

設計模式設計模式代表了最佳實踐,是軟件開發過程中面臨一般問題的解決方案設計模式是一套被反覆使用,經過分類,代碼設計的經驗單例模式單例模式也叫單件模式Singleton是一個非常用的設計模式,建一個線程安全且高效的Singleton是非常重要

原创 多態

多態在C++中是通過虛函數實現的,通過前面的模型【參見“有重寫的單繼承”】知道,如果類中有虛函數,編譯器就會自動生成一個虛函數表,對象中包含一個指向虛函數表的指針,能夠實現多態的關鍵在於:虛函數時允許被派生類重寫的,在虛函數表中,派生類函數

原创 調試

調試調試是執行一次成功的測試用例之後所要進行的工作。所謂成功的測試,是指它可以證明程序沒有實現預期的功能,調試包含兩個錯誤。一:確定程序中可疑錯誤的準確性質和位置。二:修改錯誤。暴力法調試(分三種類型)利用內存信息輸出來調試根據一般的額“在

原创 單元測試

性能測試:如何評價系統的極限性能?答:併發度,相應時間,單位時間吞吐量,系統穩定性,多場景。性能測試是通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行,

原创 數據庫的設計

數據庫設計過程及數據描述1.需求分析階段(準確瞭解與分析用戶需求包括數據與處理)2.概念結構設計階段(通過對用戶需求進行綜合、歸納和抽象,形成獨立的DBMS概念模型)3.邏輯結構設計階段(將概念結構轉換爲某個DBMS所支持的數據模型,並對其

原创 shell學習第一天

shell基礎知識Shell的作是解釋執用戶的命令,用戶輸入一條命令,Shell就解釋執行一條,這種方式稱爲交互式(Interactive),Shell還有一種執行命令的方式稱爲批處理(Batch),用戶事先寫一 個Shell腳本(Scri

原创 shell學習第二天

條件測試命令test或[可以測試一個條件是否成立,如果測試結果爲真,則該命令的Exit Status爲0,如果測試結果爲假,則命令的Exit Status爲1(注意與C語言的邏輯表示正好相反)。val=10 test $val -gt 9 

原创 C++對象模型

何爲C++對象模型?語言中直接支持面向對象的部分對於各種支持的底層實現機制語言中直接支持面向對象程序設計的部分,如構造函數,析構函數,虛函數,繼承(單繼承,虛繼承)、多態等等。在C語言中,數據和處理操作是分開來聲明的,也就是說,語言中沒有支

原创 進程間通信——共享內存

共享內存進程間通信的本質是讓不同的進程訪問一塊公共的資源。1、共享內存是進程間通信最快的方式(爲什麼)2、共享內存不提供任何的同步與互斥關係。(由用戶維護,可以用信號量)以下圖解釋了問題1,原因是,由於共享內存的機制,兩個進程不需要拷貝拷貝

原创 更高級別的測試

當程序無法實現最終用戶要求的合理功能時,就會發生一個軟件錯誤。根據這個定義,即使完成了一次非常完美的模塊測試,仍然不能保證已經找出了程序的所有錯誤。因此,要結束整個測試任務,必須進行其他形式的更深入的測試,將這些新型形式的測試稱爲“更高級別

原创 數據庫的設計

數據庫設計過程及數據描述1.需求分析階段(準確瞭解與分析用戶需求包括數據與處理)2.概念結構設計階段(通過對用戶需求進行綜合、歸納和抽象,形成獨立的DBMS概念模型)3.邏輯結構設計階段(將概念結構轉換爲某個DBMS所支持的數據模型,並對其

原创 單元測試

性能測試:如何評價系統的極限性能?答:併發度,相應時間,單位時間吞吐量,系統穩定性,多場景。性能測試是通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行,