Time of Update: 2018-12-05
分散-聚集I/O分散-聚集I/O是一種進行輸入和輸出的方法。通過此方法,單一系統調用可以將緩衝區響亮寫入單一資料流,或者將單一資料流讀取到緩衝區向量。這個類型的IO之所以會有此名稱,是因為資料會被分散至或聚集自特定的緩衝區向量。這種方式的輸入和輸出又成為向量I/O。相比較之下,標準讀取和寫入系統調用所提供的事線性I/O。 相比較與線性I/O的做法,分散-聚集I/O有幾項優點:更自然的I/O操作 如果你的資料原本就是分段的,例如標頭檔中預定義的欄位,向量I/O可對其進行直觀的操作。效率
Time of Update: 2018-12-05
瞭解 pthread_cond_wait() 的作用非常重要 -- 它是 POSIX 線程訊號發送系統的核心,也是最難以理解的部分。 首先,讓我們考慮以下情況:線程為查看已連結清單而鎖定了互斥對象,然而該列表恰巧是空的。這一特定線程什麼也幹不了 -- 其設計意圖是從列表中除去節點,但是現在卻沒有節點。因此,它只能: 鎖定互斥對象時,線程將調用 pthread_cond_wait(&mycond,&mymutex)。pthread_cond_wait()
Time of Update: 2018-12-05
Linux不會隨意對進程進行調度。事實上,應用程式會被指派優先順序,優先順序會對進程何時運行以及運行多久造成影響。以往,Unix將優先順序成為友善值(nice
Time of Update: 2018-12-05
Linux支援具有多個處理器的單一系統。引導過程除外,支援多個處理器的大量工作由進程發送器負責。在對稱多重處理(SMP)及其上,進程發送器必須決定每個CPU上要運行哪些進程。有兩項挑戰源自此責任:發送器必須想辦法充分利用系統上的所有處理器,因為當有一個進程已就緒等待運行,卻有一個CPU閑置一旁,這顯然沒有效率。 然而一個進程一旦被安排在某個CPU上運行,往後進程發送器也會將它安排在相同的CPU上運行。這是有益的,因為將一個進程從一個處理器遷移到另一個處理器是要付出代價的。 這些代價中最大者與“遷
Time of Update: 2018-12-05
Ubuntu 很有趣的採用 OpenJDK 作為預設的 Java 版本,但因為某些緣故,往往我們需要更換成 Sun Java,例如更換成 JDK 1.5 或 JDK 6。此時,有兩種方式可以使用:方法一:分別修改 java、javac (compiler) 及 javah 這三個程式指向的版本。sudo update-alternatives --config javasudo update-alternatives --config javacsudo update-alternatives
Time of Update: 2018-12-05
Ubuntu 10.04 LTS 安裝 sun-java6-jdk ,出現錯誤。Reading package lists... DoneBuilding dependency tree Reading state information... DonePackage sun-java6-jdk is not available, but is referred to by another package.This may mean that the package is missing,
Time of Update: 2018-12-05
1、方法一pid_t wait (int * status); 函數說明 wait()會暫時停止目前進程的執行,直到有訊號來到或子進程結束。如果在調用wait()時子進程已經結束,則wait()會立即返回子進程結束狀態值。子進程的結束狀態值會由參數status 返回,而子進程的進程識別碼也會一快返回。如果不在意結束狀態值,則 參數 status可以設成NULL。子進程的結束狀態值請參考waitpid()。 傳回值
Time of Update: 2018-12-05
django-admin.py startproject mysite 該命令在目前的目錄建立一個 mysite 目錄。django-admin.py這個檔案在C:\Python27\Lib\site-packages\django\bin檔案夾裡,可以把該目錄添加到系統Path裡面。Django內建一個輕量級的Web伺服器。進入 mysite
Time of Update: 2018-12-05
保護模式下的段寄存器 由 16位的選取器 與 64位的段描述符寄存器 構成段描述符寄存器: 儲存段描述符選取器:儲存段描述符的索引PS:原先實模式下的各個段寄存器作為保護模式下的段選取器,80486中有6個(即CS,SS,DS,ES,FS,GS)80位的段寄存器,同時提供6個段左右機器當前啟動並執行地址空間。由選取器CS對應表示的段仍為程式碼片段,選取器SS對應表示的段仍為堆棧段 (1)通用描述元表GDT(Global Descriptor Table)在整個系統中,通用描述元表GDT只有一張(
Time of Update: 2018-12-05
Thumb指令集概述為相容資料匯流排寬度為16位的應用系統,ARM體繫結構除了支援執行效率很高的32位ARM指令集以外,同時支援16位的Thumb指令集。Thumb指令集是ARM指令集的一個子集,是針對代碼密度問題而提出的,它具有16位的代碼寬度。與等價的32位代碼相比較,Thumb指令集在保留32位代碼優勢的同時,大大的節省了系統的儲存空間。Thumb不是一個完整的體繫結構,不能指望處理器只執行Thumb指令集而不支援ARM指令集。
Time of Update: 2018-12-05
1.指定欄位名: 在定義欄位的時候,增加參數db_column=’real_field’; 2.指定表名: 在model的class中,添加Meta類,在Meta類中指定表名db_table 例如在某個models.py檔案中,有一個類叫Info:class Info(models.Model): ''' 資訊統計 ''' app_id = models.ForeignKey(App) app_name =
Time of Update: 2018-12-05
在linux下有很多的軟體並不是形如*.rpm或*.deb的專用軟體包,很多情況下我們下載的是綠色軟體。有時候我們為了方便使用,通常希望將這些綠色軟體加入到系統的程式菜單中,我們可以通過以下簡單的幾步完成。 首先將軟體的檔案夾拷貝到需要放置的位置(為了方便管理,通常我們放到/opt下),這裡以eclipse為例。 然後我們開始建立軟連結: sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse 最後我們將程式的捷徑加入菜單:執行命令
Time of Update: 2018-12-05
在django項目中,經常會看到下面這樣的代碼:from django.contrib.auth.decorators import login_required@login_requireddef my_view(request):
Time of Update: 2018-12-05
為了使單獨編譯的C語言程式和組譯工具之間能夠相互調用,必須為子程式之間的調用規定一定的規則.ATPCS就是ARM程式和THUMB程式中子程式調用的基本規則...一.ATPCS概述... ATPCS規定了一些子程式之間調用的基本規則.這些基本規則包括子程式調用過程中寄存器的使用規則,資料棧的使用規則,參數的路由規則.為適應一些特定的需要,對這些基本的調用規則進行一些修改得到幾種不同的子程式調用規則,這些特定的調用規則包括:支援資料棧限制檢查的ATPCS. 支援唯讀段位置無關的ATPCS.
Time of Update: 2018-12-05
目標: Android到預設UI比iOS到預設UI在美觀程度上還是有一定到差距的,我們希望能夠美化UI,並且替換掉系統預設的UI風格,使得程式在使用這些UI的時候都預設使用我們自訂到UI。本文以ToggleButton為例,介紹如何使用,是。步驟:1、設定XML屬性我們需要設定ToggleButton的背景,以及當ToggleButton為on或者off時到狀態圖。首先,我們設定ToggleButton的背景,建立 /res/drawable/btn_toggle_bg.xml<?xml
Time of Update: 2018-12-05
Inotify 是一個 Linux 特性,它監控檔案系統操作,比如讀取、寫入和建立。Inotify 反應靈敏,用法非常簡單,並且比 cron 任務的繁忙輪詢高效得多。學習如何將 inotify 整合到您的應用程式中,並發現一組可用來進一步自動化系統管理的命令列工具。系統管理就像日常生活一樣。就像刷牙和吃蔬菜一樣,日常的維護能保持機器的良好狀態。您必須定期清空廢物,比如臨時檔案或無用的記錄檔,以及花時間填寫表單、回複電話、下載更新和監控進程等。幸好自動化 shell 指令碼、使用 Nagios
Time of Update: 2018-12-05
由於自己的開發板的根檔案系統放在/work/nfs_root/cmt_root/下,所以在之前已經把ImageMagick交叉編譯到/work/nfs_root/cmt_root/usr/local下,接下來開始編譯libdmtx,在使用./configure --host=arm-linux的時候一直遇到de>configure: error: dmtxread/dmtxwrite requires Wand >=
Time of Update: 2018-12-05
經過兩天的奮鬥,終於成功的把這2個的東西移植到開發板上去了,我用的是SEP4020的開發板,系統為UBUNTU 9.10,由於這是俺第一次做移植,遇到了不少新鮮而困難的東西,首先對移植的過程還不太瞭解,我自己的開發板是通過NFS掛載根檔案系統(路徑:/work/nfs_root/cmt_root),當初在移植的時候直接把ImageMagick安裝在/work/nfs_root/cmt_root/usr/local下面,一切都安裝得很順利,可以到了安裝libdmtx的時候,如前面文章所說,
Time of Update: 2018-12-05
問題分析:這是由於記憶體不足引起的。比如我要用一個大的圖片或音樂,40+MB的,在模擬器中啟動就會發生這個錯誤。問題解決:如果使用模擬器,就可以手動擴大它的記憶體,命令為:emulator -avd G8 -partition-size
Time of Update: 2018-12-05
晚上安裝CRUX老是沒有安裝上,很糾結,主要的原因是因為總是沒有安裝成功bootloader,或者bootloader配置不成功,參考了網上的其他的一些文章,覺得有些地方講得不是很清楚,導致俺花了那麼多的時間,以下是我使用lilo啟動CRUX的安裝及配置過程 1、由於使用的是CRUX 2-2版本,參考官方的手冊http://crux.nu/Main/Handbook2-2(多謝周釩兄的連結俺才知道這個)