Linux存儲(chǔ)管理方式

本質(zhì)上是一種內(nèi)存的劃分方法

分頁(yè)存儲(chǔ)管理

這種方式中牡整,將用戶程序的地址空間,注意疼约,是用戶程序的地址空間分為若干個(gè)固定大小的區(qū)域卤档,成為“頁(yè)”或“頁(yè)面”。我們可以知道程剥,這也頁(yè)其實(shí)是不存在的劝枣,只是一種劃分內(nèi)存空間的方法。也就是說织鲸,這種方式將用戶的程序“肢解”了舔腾,分成很多個(gè)小的部分,每個(gè)部分稱為一個(gè)“頁(yè)”搂擦。

邏輯地址

將邏輯地址的前n位作為頁(yè)號(hào)稳诚,后面32-n位作為頁(yè)內(nèi)偏移量。

邏輯地址

頁(yè)內(nèi)碎片

由于進(jìn)程的最后一頁(yè)經(jīng)常裝不滿一個(gè)塊瀑踢,從而形成了不可利用的碎片扳还,稱之為“頁(yè)內(nèi)碎片”

程序邏輯地址劃分為頁(yè)和頁(yè)內(nèi)地址

頁(yè)表

作用:實(shí)現(xiàn)頁(yè)號(hào)到物理號(hào)的地址映射橱夭。

頁(yè)表是記錄邏輯空間(虛擬內(nèi)存)中每一頁(yè)在內(nèi)存中對(duì)應(yīng)的物理塊號(hào)氨距。但并非每一頁(yè)邏輯空間都會(huì)實(shí)際對(duì)應(yīng)著一個(gè)物理塊,只有實(shí)際駐留在物理內(nèi)存空間中的頁(yè)才會(huì)對(duì)應(yīng)著物理塊棘劣。

系統(tǒng)會(huì)為每一個(gè)進(jìn)程建立一張頁(yè)表俏让,頁(yè)表是需要一直駐留在物理內(nèi)存中的(多級(jí)頁(yè)表除外),另外頁(yè)表的起址和長(zhǎng)度存放在 PCB(Process Control Block)進(jìn)程控制結(jié)構(gòu)體中茬暇。

頁(yè)表

可以在頁(yè)表的表項(xiàng)中設(shè)置相關(guān)的權(quán)限控制字段首昔,例如設(shè)置存取控制字段,用于保護(hù)該存儲(chǔ)塊的讀寫糙俗;若存取控制字段為2位沙廉,則可以設(shè)置讀/寫、只讀和只執(zhí)行等存取方式臼节。

物理塊

物理塊是實(shí)實(shí)在在存在于內(nèi)存中的:

物理塊

地址變換機(jī)構(gòu)

由于執(zhí)行頻率高,要求效率比較高,需要使用硬件實(shí)現(xiàn)网缝。

在系統(tǒng)中設(shè)置一個(gè)頁(yè)表寄存器(PTR),其中存放頁(yè)表在內(nèi)存的起始地址和頁(yè)表的長(zhǎng)度巨税。平時(shí)進(jìn)程未執(zhí)行的時(shí)候,頁(yè)表的起始地址和頁(yè)表長(zhǎng)度放在本進(jìn)程的PCB中粉臊。當(dāng)調(diào)度程序調(diào)度到某個(gè)進(jìn)程的時(shí)候草添,才將這兩個(gè)數(shù)據(jù)裝入頁(yè)表寄存器

注意扼仲,當(dāng)創(chuàng)建一個(gè)進(jìn)程的時(shí)候远寸,它的頁(yè)表也同時(shí)創(chuàng)建了,只不過只在PCB存儲(chǔ)了頁(yè)表的起始地址和長(zhǎng)度屠凶。

變換過程:

  1. 進(jìn)程訪問某個(gè)邏輯地址時(shí)驰后,分頁(yè)地址機(jī)構(gòu)自動(dòng)將邏輯地址分為頁(yè)號(hào)和頁(yè)內(nèi)地址
  2. 頁(yè)號(hào)大于頁(yè)表長(zhǎng)度,越界錯(cuò)誤;否則繼續(xù)下面的步驟
  3. 頁(yè)表項(xiàng)的地址 p = 頁(yè)表起始地址 F + 頁(yè)號(hào) P * 表項(xiàng)大小 S矗愧,從而得到對(duì)應(yīng)的物理塊號(hào) B
  4. 頁(yè)和物理塊的大小是一致的灶芝,所以 頁(yè)內(nèi)地址=塊內(nèi)地址
  5. 然后 物理地址 = 物理塊號(hào) B * 頁(yè)大小 L + 頁(yè)內(nèi)地址
  6. 根據(jù)物理地址讀取數(shù)據(jù)
地址變換

快表的變換機(jī)構(gòu)

基礎(chǔ)的地址變換機(jī)構(gòu)的缺點(diǎn):

由于頁(yè)表是存放在內(nèi)存中的,這使得CPU在每存取一個(gè)數(shù)據(jù)時(shí)唉韭,都需要兩次訪問內(nèi)存夜涕。第一次時(shí)訪問內(nèi)存中的頁(yè)表,獲取物理塊號(hào)属愤,于偏移值拼接得到物理地址女器,第二次是從第一次所得物理地址獲取所需數(shù)據(jù)(或者向該地址寫入數(shù)據(jù))。這樣計(jì)算機(jī)的處理速度幾乎降低了1/2住诸;

為了提高地址變換速度驾胆,可在地址變換機(jī)構(gòu)中增設(shè)一個(gè)具有并行查詢能力的特殊高速緩沖寄存器,又稱為"聯(lián)想寄存器"或者“快表”只壳。俗稱TLB俏拱。

快表與頁(yè)表的功能類似,其實(shí)就是將一部分頁(yè)表存到 CPU 內(nèi)部的高速緩沖存儲(chǔ)器 Cache吼句。CPU 尋址時(shí)先到快表查詢相應(yīng)的頁(yè)表項(xiàng)形成物理地址锅必,如果查詢不到,則到內(nèi)存中查詢惕艳,并將對(duì)應(yīng)頁(yè)表項(xiàng)調(diào)入到快表中搞隐。但,如果快表的存儲(chǔ)空間已滿远搪,則需要通過算法找到一個(gè)暫時(shí)不再需要的頁(yè)表項(xiàng),將它換出內(nèi)存谁鳍。

具有快表的地址變換機(jī)構(gòu)

由于成本的關(guān)系癞季,快表不可能做得很大劫瞳,通常只存放 16~512 個(gè)頁(yè)表項(xiàng),這對(duì)中绷柒、小型作業(yè)來說志于,已有可能把全部頁(yè)表項(xiàng)放在快表中;但對(duì)于大型作業(yè)而言废睦,則只能將其一部分頁(yè)表項(xiàng)放入其中伺绽。由于對(duì)程序和數(shù)據(jù)的訪問往往帶有局限性,因此嗜湃,據(jù)統(tǒng)計(jì)奈应,從快表中能找到所需頁(yè)表項(xiàng)的概率可達(dá) 90% 以上。這樣购披,由于增加了地址變換機(jī)構(gòu)而造成的速度損失可減少到 10% 以下杖挣,達(dá)到了可接受的程度。

兩級(jí)頁(yè)表

一級(jí)頁(yè)表的缺陷:由于頁(yè)表必須連續(xù)存放今瀑,并且需要常駐物理內(nèi)存程梦,當(dāng)邏輯地址空間很大時(shí),導(dǎo)致頁(yè)表占用內(nèi)存空間很大橘荠。

我們可以采用這樣兩個(gè)方法來解決這一問題:

① 對(duì)于頁(yè)表所需的內(nèi)存空間屿附,可采用離散分配方式,以解決難以找到一塊連續(xù)的大內(nèi)存空間的問題哥童;

只將當(dāng)前需要的部分頁(yè)表項(xiàng)調(diào)入內(nèi)存挺份,其余的頁(yè)表項(xiàng)仍駐留在磁盤上贮懈,需要時(shí)再調(diào)入。

二級(jí)頁(yè)表的頁(yè)表項(xiàng):

二級(jí)頁(yè)表頁(yè)表項(xiàng)

過程:

  1. 外層頁(yè)表寄存器中保存了外層頁(yè)表的始址朵你,根據(jù)外層頁(yè)號(hào)查找到內(nèi)層頁(yè)號(hào)。
  2. 找到指定頁(yè)表分頁(yè)的始址躲因,根據(jù)內(nèi)層頁(yè)號(hào)找到物理塊號(hào)。
  3. 物理塊號(hào)P和頁(yè)內(nèi)地址d組裝成一個(gè)實(shí)際的物理地址大脉。
二級(jí)頁(yè)表工作流程

在采用兩級(jí)頁(yè)表結(jié)構(gòu)的情況下水孩,對(duì)于正在運(yùn)行的進(jìn)程,必須將其外層頁(yè)表調(diào)入內(nèi)存俘种,而對(duì)于內(nèi)頁(yè)表則只需調(diào)入一頁(yè)或幾頁(yè)绝淡。為了表征某頁(yè)的頁(yè)表是否已經(jīng)調(diào)入內(nèi)存抛杨,還應(yīng)在外層頁(yè)表項(xiàng)中增設(shè)一個(gè)狀態(tài)位 S,其值若為 0怖现,表示該頁(yè)表分頁(yè)不在內(nèi)存中,否則說明其分頁(yè)已調(diào)入內(nèi)存玉罐。進(jìn)程運(yùn)行時(shí)屈嗤,地址變換機(jī)構(gòu)根據(jù)邏輯地址中的 P1去查找外層頁(yè)表;若所找到的頁(yè)表項(xiàng)中的狀態(tài)位為 0吊输,則產(chǎn)生一個(gè)中斷信號(hào)饶号,請(qǐng)求 OS 將該頁(yè)表分頁(yè)調(diào)入內(nèi)存。

多級(jí)頁(yè)表

多級(jí)頁(yè)表和二級(jí)頁(yè)表類似季蚂。多級(jí)頁(yè)表和二級(jí)頁(yè)表是為了節(jié)省物理內(nèi)存空間茫船。使得頁(yè)表可以在內(nèi)存中離散存儲(chǔ)。(單級(jí)頁(yè)表為了隨機(jī)訪問必須連續(xù)存儲(chǔ)扭屁,如果虛擬內(nèi)存空間很大算谈,就需要很多頁(yè)表項(xiàng),就需要很大的連續(xù)內(nèi)存空間料滥,但是多級(jí)頁(yè)表不需要然眼。)

分頁(yè)式管理很好的避免了外部碎片,但是還是存在內(nèi)部碎片葵腹,因?yàn)槌绦虼笮〔豢赡芸偸?的n次冪高每。多級(jí)頁(yè)表使得頁(yè)表數(shù)據(jù)可以不需要連續(xù)存儲(chǔ),即實(shí)現(xiàn)了頁(yè)表的離散式存儲(chǔ)践宴。并且在當(dāng)對(duì)應(yīng)程序運(yùn)行才將內(nèi)頁(yè)表數(shù)據(jù)調(diào)入內(nèi)存也減少了頁(yè)表所占用的內(nèi)存空間鲸匿。本質(zhì)上是提高內(nèi)存利用率。

分段存儲(chǔ)管理

為了滿足用戶要求的一種存儲(chǔ)管理的方式

為什么引入分段存儲(chǔ)管理阻肩?

  1. 通常的程序都可以分為若干個(gè)段带欢,如主程序段、子程序段A磺浙、子程序段B洪囤、...、數(shù)據(jù)段和棧段等等撕氧。
  2. 實(shí)現(xiàn)和滿足信息共享瘤缩、信息保護(hù)、動(dòng)態(tài)鏈接以及信息的動(dòng)態(tài)增長(zhǎng)

引入效果:

  • 方便編程

    使用符號(hào)作為段地址進(jìn)行使用伦泥。(每個(gè)段都是從 0 開始的獨(dú)立邏輯地址空間剥啤;)

  • 信息共享

    在實(shí)現(xiàn)對(duì)程序和數(shù)據(jù)的共享時(shí)府怯,是以信息的邏輯單位為基礎(chǔ)的。比如则涯,為了共享某個(gè)過程粟判、函數(shù)或文件档礁。分頁(yè)系統(tǒng)中的“頁(yè)”只是存放信息的物理單位(塊)呻澜,并無完整的邏輯意義羹幸,這樣睹欲,一個(gè)可被共享的過程往往可能需要占用數(shù)十個(gè)頁(yè)面窘疮,這為實(shí)現(xiàn)共享增加了困難闸衫。段可以是信息的邏輯單位蔚出,因此骄酗,我們可以為該被共享過程建立一個(gè)獨(dú)立的段趋翻,這就極大地簡(jiǎn)化了共享的實(shí)現(xiàn)踏烙。

  • 信息保護(hù)

    信息保護(hù)同樣是以信息的邏輯單位為基礎(chǔ)的,而且經(jīng)常是以一個(gè)過程辟癌、函數(shù)或文件為基本單位進(jìn)行保護(hù)的黍少。例如仍侥,我們希望函數(shù) A 僅允許進(jìn)程執(zhí)行,而不允許讀或颊,更不允許寫囱挑,那么平挑,我們只須在包含了函數(shù) A 的這個(gè)段上標(biāo)上只執(zhí)行標(biāo)志即可。但是在分頁(yè)系統(tǒng)中找都,函數(shù) A 可能要占用若干個(gè)頁(yè)面能耻,而且其中的第一個(gè)和最后一個(gè)頁(yè)面還會(huì)裝有其它程序段的數(shù)據(jù)饿幅,它們可能有著不同的保護(hù)屬性栗恩,如可以允許進(jìn)程讀寫摄凡,這樣就很難對(duì)這些頁(yè)面實(shí)施統(tǒng)一的保護(hù),因此钦扭,分段管理方式能更有效和方便地實(shí)現(xiàn)對(duì)信息的保護(hù)功能客情。

  • 動(dòng)態(tài)增長(zhǎng)

    在實(shí)際應(yīng)用中膀斋,往往存在著一些段仰担,尤其是數(shù)據(jù)段,在它們的使用過程中愉耙,由于數(shù)據(jù)量的不斷增加朴沿,而使數(shù)據(jù)段動(dòng)態(tài)增長(zhǎng)魏铅,相應(yīng)地它所需要的存儲(chǔ)空間也會(huì)動(dòng)態(tài)增加沦零。然而路操,對(duì)于數(shù)據(jù)段究竟會(huì)增長(zhǎng)到多大屯仗,事先又很難確切地知道魁袜。對(duì)此峰弹,很難采取預(yù)先多分配的方法進(jìn)行解決融师。前述的其它幾種存儲(chǔ)管理方式都難以應(yīng)付這種動(dòng)態(tài)增長(zhǎng)的情況旱爆,而分段存儲(chǔ)管理方式卻能較好地解決這一問題怀伦。

  • 動(dòng)態(tài)鏈接

    動(dòng)態(tài)鏈接在作業(yè)運(yùn)行之前房待,并不是把所有的目標(biāo)程序段都鏈接起來吴攒。當(dāng)程序要運(yùn)行時(shí),首先將主程序和它立即需要用到的目標(biāo)程序裝入內(nèi)存左驾,即啟動(dòng)運(yùn)行诡右。而在程序運(yùn)行過程中帆吻,當(dāng)需要調(diào)用某個(gè)目標(biāo)程序時(shí)猜煮,才將該段(目標(biāo)程序)調(diào)入內(nèi)存并進(jìn)行鏈接∈幸螅可見搞挣,動(dòng)態(tài)鏈接要求的是以目標(biāo)程序(即段)作為鏈接的基本單位,因此囱桨,分段存儲(chǔ)管理方式非常適合于動(dòng)態(tài)鏈接蝇摸。

它將用戶程序的地址空間分為若干個(gè)大小不同的的段貌夕,每個(gè)段可以定義一組完整的信息啡专。

分段地址

段號(hào)表示段名们童,每個(gè)段都從0開始編址慧库,并且采用一段連續(xù)的地址空間。

分段地址

在該地址結(jié)構(gòu)中,允許一個(gè)作業(yè)最長(zhǎng)有64K個(gè)段橡羞,每個(gè)段的最大長(zhǎng)度為64KB济舆。

在分段式存儲(chǔ)管理系統(tǒng)中滋觉,為每一個(gè)分段分配一個(gè)連續(xù)的分區(qū)覆致。進(jìn)程的各個(gè)段肺蔚,可以離散地裝入內(nèi)存中不同的分區(qū)中。

段表

作用:實(shí)現(xiàn)從邏輯地址到物理內(nèi)存區(qū)的映射汰蜘。

為了保證程序能夠正常運(yùn)行族操,就必須能夠從物理內(nèi)存中找出每個(gè)邏輯段所對(duì)應(yīng)的位置色难。為此在系統(tǒng)中會(huì)為每一個(gè)進(jìn)程建立一張段表枷莉。每個(gè)段在表中有一個(gè)表項(xiàng)笤妙,其中記錄了該段在內(nèi)存中的起始地址和段的長(zhǎng)度蹲盘。一般將段表保存在內(nèi)存中召衔。

image-20200819224122503

在配置了段表之后薄嫡,執(zhí)行的過程可以通過查找段表吩坝,找到每一個(gè)段所對(duì)應(yīng)的內(nèi)存區(qū)弧呐。

地址變換機(jī)構(gòu)

為了實(shí)現(xiàn)進(jìn)程從邏輯地址到物理地址的變換功能嵌纲,在系統(tǒng)設(shè)置了段表寄存器逮走,用于存放段表的起始地址和段表長(zhǎng)度TL。

在進(jìn)行地址變換時(shí)盾舌,系統(tǒng)將邏輯地址中的段號(hào)與段表長(zhǎng)度TL 進(jìn)行比較妖谴。若 S > TL膝舅,表示段號(hào)太大仍稀,是訪問越界琳轿,于是產(chǎn)生越界中斷信號(hào)。若未越界吧秕,則根據(jù)段表的始址和該段的段號(hào)颠毙,計(jì)算出該段對(duì)應(yīng)段表項(xiàng)的位置蛀蜜,從中讀出該段在內(nèi)存的起始地址滴某。然后霎奢,再檢查段內(nèi)地址 d 是否超過該段的段長(zhǎng) SL幕侠。若超過悼潭,即 d>SL女责,同樣發(fā)出越界中斷信號(hào)抵知。若未越界刷喜,則將該段的基址 d 與段內(nèi)地址相加掖疮,即可得到要訪問的內(nèi)存浊闪。

分段地址變換過程

像分頁(yè)系統(tǒng)一樣,當(dāng)段表放在內(nèi)存中時(shí)螺戳,每要訪問一個(gè)數(shù)據(jù)搁宾,都須訪問兩次內(nèi)存,從而成倍地降低了計(jì)算機(jī)的速率倔幼。解決的方法和分頁(yè)系統(tǒng)類似盖腿,也增設(shè)一個(gè)聯(lián)相存儲(chǔ)器,用于保存最近常用的段表項(xiàng)损同。一般情況下翩腐,由于是段比頁(yè)大,因而段表項(xiàng)的數(shù)目比頁(yè)表項(xiàng)的數(shù)目少膏燃,其所需的聯(lián)想存儲(chǔ)器也相對(duì)較小,所以可以顯著地減少存取數(shù)據(jù)的時(shí)間,與沒有地址變換的常規(guī)存儲(chǔ)器相比而言霍比,其存取速度約慢 10%~15%。

段頁(yè)式存儲(chǔ)管理

分頁(yè)和分段的區(qū)別

分頁(yè)和分段系統(tǒng)相似之處:兩者都采用離散分配方式,且都是通過地址映射機(jī)構(gòu)實(shí)現(xiàn)地址變換摄欲。

但在概念上兩者完全不同,主要表現(xiàn)在下述三個(gè)方面:

  1. 頁(yè)是信息的物理單位,段是信息的邏輯單位补履。
  2. 頁(yè)的大小確定且又系統(tǒng)決定谚攒;段的長(zhǎng)度不固定括儒,決定于用戶所編寫的程序固逗。
  3. 分頁(yè)的用戶程序地址空間是一維的,只需要一個(gè)記憶符就能夠表示一個(gè)地址;分段的用戶程序地址空間是二維的,既需要段名,又需要段內(nèi)地址。

段頁(yè)式

分頁(yè)系統(tǒng)以頁(yè)面作為內(nèi)存分配的基本單位弥奸,能有效地提高內(nèi)存利用率期揪,而分段系統(tǒng)以段作為內(nèi)存分配的基本單位缤苫,它能夠更好地滿足用戶多方面的需要。

段頁(yè)式地址結(jié)構(gòu)

段頁(yè)式地址結(jié)構(gòu)由段號(hào)死陆、段內(nèi)頁(yè)號(hào)及頁(yè)內(nèi)地址三部分所組成

地址結(jié)構(gòu)

段頁(yè)式系統(tǒng)的基本原理是分段和分頁(yè)原理的結(jié)合塌衰,即先將用戶程序分成若干個(gè)段获诈,再把每個(gè)段分成若干個(gè)頁(yè),并為每一個(gè)段賦予一個(gè)段名价涝。如下圖展示了一個(gè)作業(yè)地址空間的結(jié)構(gòu)。該作業(yè)有三個(gè)段:主程序段魏割、子程序段和數(shù)據(jù)段耻卡;頁(yè)面大小為 4 KB:

段頁(yè)式作業(yè)地址空間的結(jié)構(gòu)

在段頁(yè)式系統(tǒng)中搓茬,為了實(shí)現(xiàn)從邏輯地址到物理地址的變換张肾,系統(tǒng)中需要同時(shí)配置段表和頁(yè)表。段表的內(nèi)容與分段系統(tǒng)略有不同俭缓,它不再是內(nèi)存始址和段長(zhǎng)坷衍,而是頁(yè)表始址和頁(yè)表長(zhǎng)度。下圖展示出了利用段表和頁(yè)表進(jìn)行從用戶地址空間到物理(內(nèi)存)空間的映射侈玄。

段表頁(yè)表實(shí)現(xiàn)地址映射

地址變換過程

在段頁(yè)式系統(tǒng)中,為了便于實(shí)現(xiàn)地址變換缕陕,須配置一個(gè)段表寄存器铐然,其中存放段表始址和段長(zhǎng) TL险掀。進(jìn)行地址變換時(shí)死宣,首先利用段號(hào) S挡育,將它與段長(zhǎng) TL 進(jìn)行比較。若 S < TL抖单,表示未越界,于是利用段表始址和段號(hào)來求出該段所對(duì)應(yīng)的段表項(xiàng)在段表中的位置矛绘,從中得到該段的頁(yè)表始址耍休,并利用邏輯地址中的段內(nèi)頁(yè)號(hào) P 來獲得對(duì)應(yīng)頁(yè)的頁(yè)表項(xiàng)位置,從中讀出該貝所在的物理塊號(hào) b货矮,再利用塊號(hào) b 和頁(yè)內(nèi)地址來構(gòu)成物理地址羊精。

段頁(yè)式系統(tǒng)的地址變換機(jī)構(gòu)

在段頁(yè)式系統(tǒng)中,為了獲得一條指令或數(shù)據(jù)囚玫,須三次訪問內(nèi)存喧锦。第一次訪問是訪問內(nèi)存中的段表,從中取得頁(yè)表始址抓督;第二次訪問是訪問內(nèi)存中的頁(yè)表燃少,從中取出該頁(yè)所在的物理塊號(hào),并將該塊號(hào)與頁(yè)內(nèi)地址一起形成指令或數(shù)據(jù)的物理地址铃在;第三次訪問才是真正從第二次訪問所得的地址中取出指令或數(shù)據(jù)阵具。

顯然碍遍,這使訪問內(nèi)存的次數(shù)增加了近兩倍。為了提高執(zhí)行速度怔昨,在地址變換機(jī)構(gòu)中增設(shè)一個(gè)高速緩沖寄存器雀久。每次訪問它時(shí),都須同時(shí)利用段號(hào)和頁(yè)號(hào)去檢索高速緩存趁舀,若找到匹配的表項(xiàng)赖捌,便可從中得到相應(yīng)頁(yè)的物理塊號(hào),用來與頁(yè)內(nèi)地址一起形成物理地址:若未找到匹配表項(xiàng)矮烹,則仍需第三次訪問內(nèi)存越庇。


參考鏈接:

  1. 【操作系統(tǒng) - 4】動(dòng)態(tài)分區(qū)分配算法
  2. 程序的鏈接的三種方式
  3. 連續(xù)分配管理方式
  4. 深入理解操作系統(tǒng)之——分頁(yè)式存儲(chǔ)管理
  5. 《計(jì)算機(jī)操作系統(tǒng)》(第四版)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奉狈,隨后出現(xiàn)的幾起案子卤唉,更是在濱河造成了極大的恐慌,老刑警劉巖仁期,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桑驱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡跛蛋,警方通過查閱死者的電腦和手機(jī)熬的,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赊级,“玉大人押框,你說我怎么就攤上這事±硌罚” “怎么了橡伞?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)晋被。 經(jīng)常有香客問我兑徘,道長(zhǎng),這世上最難降的妖魔是什么羡洛? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任道媚,我火速辦了婚禮,結(jié)果婚禮上翘县,老公的妹妹穿的比我還像新娘最域。我一直安慰自己,他們只是感情好锈麸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布镀脂。 她就那樣靜靜地躺著,像睡著了一般忘伞。 火紅的嫁衣襯著肌膚如雪薄翅。 梳的紋絲不亂的頭發(fā)上沙兰,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音翘魄,去河邊找鬼鼎天。 笑死,一個(gè)胖子當(dāng)著我的面吹牛暑竟,可吹牛的內(nèi)容都是我干的斋射。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼但荤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼罗岖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腹躁,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤桑包,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纺非,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哑了,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年烧颖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弱左。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倒信,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泳梆,到底是詐尸還是另有隱情鳖悠,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布优妙,位于F島的核電站乘综,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏套硼。R本人自食惡果不足惜卡辰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邪意。 院中可真熱鬧九妈,春花似錦、人聲如沸雾鬼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)策菜。三九已至晶疼,卻和暖如春酒贬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背翠霍。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工锭吨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寒匙。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓零如,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蒋情。 傳聞我的和親對(duì)象是個(gè)殘疾皇子埠况,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354