原创 Linux系統內存管理之夥伴系統分析

   1.夥伴系統概念   夥伴系統是一種經典的內存管理方法。Linux夥伴系統的引入爲內核提供了一種用於分配一組連續的頁而建立的一種高效的分配策略,並有效的解決了外碎片問題。  2.夥伴系統的組織結構   Linux中的內存管理的“

原创 深入理解Python描述符

最近在看《流暢的Python》關於描述符的章節,平時也不經意間會接觸到cached_property、sqlalchemy的Column、甚至內置的property都是描述符。在網上也看到過關於描述符的講解,但是並沒有區分覆蓋型描述符和非

原创 web app實現基站定位獲取精確地理位置的一種簡單方法

前提:這個方式只適用於在小範圍提供地理位置服務,比如校園應用     做過web端地理位置定位的同學大概都知道不管是哪家地圖的webservice api,最後定位誤差都很大,沒辦法和手機app的定位比,這是因爲手機app定位的原理是基於

原创 linux進程,普通線程,內核線程

在Linux中,進程和線程的區別並不大,進程的創建主要依賴於fork函數(還有vfork函數),普通線程的創建則依賴於clone函數,內核線程比較特殊,後面再講 在Linux 2.6.32版本的內核中,三個函數的實現如下(體系結構爲x86

原创 Python字符串查找算法之BMHBNFS算法

最近面試阿里,第一個算法題就是字符串匹配算法,當時一臉懵逼,連樸素字符串匹配算法都不知道,面試官還問我有沒有深入瞭解Python語言的字符串怎麼查找的,頓時戳中痛點,想想自己學Python真的還是太淺了。於是就去把字符串匹配算法全學了一遍

原创 Linux內核之禁止中斷和禁止內核搶佔

禁止中斷指的是Linux內核停工了一組接口用於操作機器上的中斷狀態。這些接口爲我們提供了能夠禁止當前處理器的中斷系統,或者屏蔽掉整個機器的一條中斷線的能力。通過禁止中斷,可以確保某個中斷處理程序不會搶佔當前的代碼。控制中斷系統在Linux

原创 Linux內核之page cache和buffer cache

page cache也被稱爲頁高速緩存,在VFS文件系統中,每個文件都會有一棵radix樹管理文件的緩存頁,這些被管理的緩存頁被稱之爲page cache。所以,page cache是針對文件系統而言的。page cache是對文件數據的

原创 深入探究fork函數寫時拷貝技術的實現

這幾天在看《Linux內核設計與實現》,看到fork函數寫時拷貝(copy on write)那一節,突然發現以前學習寫時拷貝技術的時候只是大概理解了它的原理,並沒有深入理解,本來想在網上找找有沒有分析寫時拷貝技術實現原理的博客,找了半天

原创 Linux內核之自旋鎖和信號量

Linux內核實現了多種同步方法,指令級支持的原子操作、自旋鎖、信號量、互斥鎖、完成量、大內核鎖等等,我就挑比較有代表性的兩個鎖——自旋鎖和信號量來分析。 自旋鎖 Linux內核中最常用的鎖就是自旋鎖(spin lock),自旋鎖最多隻能

原创 hadoop之docker僞分佈式部署

配置環境: macbook、兩臺ubuntu 16.04 server虛擬機,用VMware Fusion創建的,虛擬機網絡適配器模式是NAT模式(注意此處一定要是NAT模式) 第一步:搭建虛擬網橋br0,br1 這步可以按照網上的一些通

原创 Linux內核之進程上下文和中斷上下文

進程在執行的過程中始終會處於用戶態和內核態中的一種,而內核態又分爲運行於進程上下文(內核代表進程運行於內核空間)和運行於中斷上下文(內核代表硬件運行於內核空間)。 進程上下文 所謂的進程上下文就是進程在執行的時候擁有的寄存器值、打開的文件

原创 Linux context_switch函數實現分析

轉載至:http://blog.csdn.net/gatieme/article/details/51872659?locationNum=5,原文格式太亂了,但是寫得很好,我重新組織了格式,刪了一些話,加了一些自己的理解 1.上下文切換

原创 從ESTABLISTEND到數據庫連接池

今天在做一個Python應用的壓力測試時,閒得沒事看了一下網絡連接的情況(netstat -an | grep tcp),一看驚呆了本寶寶,439個ESTABLISTEND連接,本來以爲這種和大量TIME_WAIT或大量CLOSE_WAI

原创 Linux內核之搶佔

在Linux中搶佔分爲用戶搶佔和內核搶佔 1.need_resched need_resched標誌在Linux內核中用來表明是否需要重新調度,每個進程都包含一個need_resched標誌,爲什麼不維護一個全局的need_resched

原创 記一次大型活動-聖誕蘋果活動的心得

聖誕送蘋果活動過去幾天了,回顧一下這次活動是笑遞(創業項目)第一次真正的大型活動,爲了做好這次線上200搶兩百個蘋果的活動,三個星期前決定重構一遍笑遞web前端的代碼,從14周結課,我一直在想該怎麼重構,之前的前端代碼非常混亂,用的是py