當前位置:首頁 » 存儲配置 » linux訪問存儲

linux訪問存儲

發布時間: 2023-06-14 02:49:54

『壹』 linux系統怎麼使用SMB訪問NAS

NAS是英文「Network Attached Storage」的縮寫, 中文意思是「網路附加存儲」。按字面簡單說就是連接在網路上, 具備資料存儲功能的裝置,因此也稱為「網路存儲器」或者「網路磁碟陣列」。 從結構上講,NAS是功能單一的精簡型電腦,因此在架構上不像個人電腦那麼復雜,在外觀上就像家電產品,只需電源與簡單的控制鈕,NAS是一種專業的網路文件存儲及文件備份設備,它是基於LAN(區域網)的,按照TCP/IP協議進行通信,以文件的I/O(輸入/輸出)方式進行數據傳輸。在LAN環境下,NAS已經完全可以實現異構平台之間的數據級共享,比如NT、UNIX等平台的共享。一個NAS系統包括處理器,文件服務管理模塊和多個硬碟驅動器(用於數據的存儲)。 NAS 可以應用在任何的網路環境當中。主伺服器和客戶端可以非常方便地在NAS上存取任意格式的文件,包括SMB格式(Windows)NFS格式(Unix, Linux)和CIFS(Common Internet File System)格式等等。典型的NAS的網路結構

『貳』 怎樣用linux命令行訪問AmazonS3雲存儲

在Ubuntu或者Debian上安裝s3cm $ sudo apt-get install s3cmd 在Fedora上安裝s3cmd $ sudo yum install s3cmd 在CentOS或者RHEL上安裝s3cm $ s3cmd put –acl-public 4.png s3://dev99 4.png -> s3://dev99/4.png [1 of 1] 30778 of 30778 100% in 8s 3.34 kB/s done 先從官方站點上下載rpm包,然後手工安裝。64位CentOS或RHEL 6,用以下命令: $ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm 配置s3cmd 第一次運行s3cmd需要運行下面的命令做配置: $ s3cmd –configure 它將會問你一系列問題: AWS S3的訪問密鑰和安全密鑰 對AWS S3雙向傳輸的加密密碼和加密數據 為加密數據設定GPG程序的路徑(例如,/usr/bin/gpg)

『叄』 Linux操作系統文件訪問許可權詳解

一直以root登陸使用linux的人來說很少有許可權被拒這種概念,但某些時候又深受許可權拒絕困擾。
知道為什麼很多程序中需要使用getuid(),setuid()?為什麼以普通許可權登陸的用戶不能進入/root,為什麼在/目錄下執行ls -l後可以顯示root的信息,但ls /root -al卻是許可權不夠?為什麼有些文件夾可以繼續創建文件,但就是不能ls?等等,相信看了此文就能明白。
主要是學習筆記,不足之處請指正。
CentOS 5.4 [testc@xxx opt]$ uname -a Linux xxx 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux
一、口令文件1,格式存儲文件/etc/passwd,格式如下:root:x:0:0:root:/root:/bin/bash aaa:x:501:501:bj, bj, 8111111,136000111:/home/aaa:/bin/bash用戶名:加密密碼:用戶ID:組ID:注釋:工作目錄:shell:
默認情況是第一行的格式;注釋欄位可以自行修改,用逗號隔開,如第二行格式,這主要是給finger命令使用時可解析。
可以vi /etc/passwd修改,但為了保證其格式的正確性,請用vipw命令編譯此文件。
sh-3.2# finger aaa Login: aaa Name: bj Directory: /home/aaa Shell: /bin/bash Office: bj, 8111111 Home Phone: 136000111 Never logged in. No mail. No Plan.
2,編程實例
/*getpwnam_pwuid.c*/ #include #include #include
int main(void)
{ //struct passwd *pwd = getpwnam("aaa");struct passwd *pwd = getpwuid(501);if(pwd == NULL)
{ printf("err.\n");return 1;}
printf("name:%s\n", pwd->pw_name);printf("passwd:%s\n", pwd->pw_passwd);printf("description:%s\n", pwd->pw_gecos);printf("uid:%d\n", pwd->pw_uid);printf("gid:%d\n", pwd->pw_gid);printf("dir:%s\n", pwd->pw_dir);printf("shell:%s\n", pwd->pw_shell);
return 0;}
sh-3.2# gcc getpwnam_pwuid.c -o app sh-3.2# ./app name:aaa passwd:x description:bj, bj, 8111111,136000111 uid:501 gid:501 dir:/home/aaa shell:/bin/bash
二、組文件1,格式存儲文件/etc/group,格式如下root:x:0:root bin:x:1:root,bin,daemon aaa:x:501:組名:加密密碼:組ID:指向的各用戶名
2,改變文件uid和gid.
sh-3.2# pwd /root/study sh-3.2# ls -al -rw-r——r—— 1 root root 397 10-11 03:23 test.c
chgrp 改變所屬組ID,當然只有root許可權才可以修改。
sh-3.2# chgrp aaa test.c sh-3.2# ls -al -rw-r——r—— 1 root aaa 397 10-11 03:23 test.c
這個aaa就是新組名,其在/etc/group中,可以通過adser aaa自行添加sh-3.2# cat /etc/group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon.
gdm:x:42:sabayon:x:86:plmtest:x:500:aaa:x:501:
chown 改變用戶ID或組ID sh-3.2# chown aaa:aaa test.c sh-3.2# ls -al -rw-r——r—— 1 aaa aaa 397 10-11 03:23 test.c
3,編程實例
/*getgrnam.c*/ #include #include
int main(int argc, char *argv[])
{ if(argv[1] == NULL)
{ printf("input error.\n");return 1;}
struct group *gp = getgrnam(argv[1]);if(gp == NULL)
{ printf("err.\n");return 1;}
printf("name:%s\n", gp->gr_name);printf("psswd:%s\n", gp->gr_passwd);printf("gid:%d\n", gp->gr_gid);
int i;for(i = 0; gp->gr_mem[i] != NULL; i++)
{ printf("group name:%s\n", gp->gr_mem[i]);}
return 0;}
sh-3.2# gcc getgrnam.c -o app sh-3.2# ./app bin name:bin psswd:x gid:1 group name:root group name:bin group name:daemon 4,文件許可權不細講了sh-3.2# ls -al總計 483984 drwxr-x—— 13 root root 4096 02-22 00:01 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
-rw-r——r—— 1 root root 464023491 10-25 22:33 3.3.005-080425.tgz -rw—— 1 root root 9346 02-21 23:16 .bash_history -rw-r——r—— 1 root root 24 2007-01-06 .bash_logout -rw-r——r—— 1 root root 191 2007-01-06 .bash_profile -rw-r——r—— 1 root root 176 2007-01-06 .bashrc drwxrwxrwx 10 1000 users 4096 08-23 20:16 cflow-1.3 -rw-r——r—— 1 root root 759691 08-23 20:13 cflow.tar.gz -rw-r——r—— 1 root root 100 2007-01-06 .cshrc -rwxr-xr-x 1 root root 582 11-11 21:48 delete_M.sh -rw-r——r—— 1 root root 2518 11-11 20:25 .dir_colors
主要是最左邊一列:drwxr-x——10個字元,最左邊是文件類型,-默認為普通文件;d:目錄文件;l符號鏈接……
後面9個,3個一組共三組,分別表示所屬用戶uid的許可權;所屬組或者附屬組gid的許可權;其它許可權。
三個字元分別是讀、寫、執行許可權讀4,寫2, 執行1
所以chmod 777 test.c,提升到讀、寫、執行許可權。
5,組許可權操作實例此節演示相同組的成員之間共享資源,即不同uid但相同gid的用戶共享同一組的資源。
為了方便起見,我同時開了兩個終端。
"sh-3.2#"以root許可權登陸的shell /bin/sh "[testa@xxx root]"以testa用戶登陸的shell
註:下文提到的「用戶」是指/etc/passwd里定義的通過終端登陸的用戶(此文即以下增加的三個賬號名)。
sh-3.2# useradd testa sh-3.2# useradd testb sh-3.2# useradd testc
sh-3.2# tail -f /etc/passwd -n 4 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin testa:x:500:500::/home/testa:/bin/bash testb:x:501:501::/home/testb:/bin/bash testc:x:502:502::/home/testc:/bin/bash
再開一個終端登陸testa,之前那個終端保持。
sh-3.2# su testa [testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa)
[testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwx—— 3 testb testb 4096 02-21 22:48 testb drwx—— 3 testc testc 4096 02-21 22:52 testc
[testa@xxx home]$ cd testb bash: cd: testb: 許可權不夠
通過root修改testb目錄許可權為770,即當前uid或者gid相同的用戶均有讀寫執行許可權。
sh-3.2# cd /home/ sh-3.2# chmod 770 testb
[testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwxrwx—— 3 testb testb 4096 02-21 22:48 testb (here modify)
drwx—— 3 testc testc 4096 02-21 22:52 testc
[testa@xxx home]$ cd testb bash: cd: testb: 許可權不夠[testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa)
此時雖然開放了testb的所屬組許可權,但用戶testa的gid=500(testa) groups=500(testa),它還不屬於testb組。
下面修改testa的gid為testb(或者增加其附屬組groups值為testb)
sh-3.2# usermod -G testb testa (增加用戶testa的附屬組testb)
sh-3.2# id testa uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
此時testa終端需要重新登下,使剛才更改生效[testa@xxx root]$ exit exit [root@xxx ~]# su testa [testa@xxx root]$ id uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
[testa@xxx root]$ cd /home/ [testa@xxx home]$ ls -al總計 28 drwxr-xr-x 5 root root 4096 02-21 22:52 . drwxr-xr-x 32 root root 4096 02-21 21:15 ……
drwx—— 3 testa testa 4096 02-21 22:56 testa drwxrwx—— 3 testb testb 4096 02-21 22:48 testb drwx—— 3 testc testc 4096 02-21 22:52 testc [testa@xxx home]$ cd testb [testa@xxx testb]$ pwd /home/testb
以上是增加了用戶testa的附屬組testb,使其對於屬於testb組的資源有了訪問許可權。
下面再使用newgrp切換用戶testa的gid.
[testa@xxx testb]$ id uid=500(testa) gid=500(testa) groups=500(testa),501(testb)
[testa@xxx testb]$ newgrp testb [testa@xxx testb]$ id uid=500(testa) gid=501(testb) groups=500(testa),501(testb)
此時testa用戶的gid已改為501(testb)。
組之前的關系在文件/etc/group sh-3.2# tail -f /etc/group -n 4 sabayon:x:86:testa:x:500:testb:x:501:testa (最後一列:組內用戶列表。即組testb里包含testa,testa屬於testb組,大概就這意思吧……)
testc:x:502:
雖然知道控制組關系的文件,但不能直接修改些文件,否則執行newgrp時會出現"抱歉"錯誤提示。
當然root用戶許可權是無限制的,它訪問文件時不需要進行許可權檢查。
三、相關系統調用getuid();getgid();int setuid(uid_t uid);int setgid(gid_t gid);
只有超級用戶或者需要設置的uid和當前用戶的uid一致才可以設置,否則返回-1,置errno = EPERM, errno可以通過strerror()翻譯。
其它:[testa@xxx home]$ su testa [testa@xxx home]$ sudo touch aa
testa is not in the sudoers file. This incident will be reported.
以root許可權vim /etc/sudoers增加testa ALL=(ALL) ALL
參考:APUE2E,1.8, 4.4, 8.11

『肆』 如何使用Linux命令行訪問Amazon S3雲存儲

在linux上安裝s3cmd
在Ubuntu或者Debian上安裝s3cm

$ sudo apt-get install s3cmd

在Fedora上安裝s3cmd

$ sudo yum install s3cmd

在CentOS或者RHEL上安裝s3cm

$ s3cmd put –acl-public 4.png s3://dev99

4.png -> s3://dev99/4.png [1 of 1]
30778 of 30778 100% in 8s 3.34 kB/s done

先從官方站點上下載rpm包,然後手工安裝。64位CentOS或RHEL 6,用以下命令:

$ sudo rpm -ivh s3cmd-1.0.0-4.1.x86_64.rpm

配置s3cmd
第一次運行s3cmd需要運行下面的命令做配置:

$ s3cmd –configure

它將會問你一系列問題:
AWS S3的訪問密鑰和安全密鑰
對AWS S3雙向傳輸的加密密碼和加密數據
為加密數據設定GPG程序的路徑(例如,/usr/bin/gpg)
是否使用https協議
如果使用http代理,設定名字和埠
配置將以保存普通文本格式保存在 ~/.s3cfg.
s3cmd的基本用法
在你的賬戶中列出所有現有的bucket:

$ s3cmd ls

2011-05-28 22:30 s3://mybucket1
2011-05-29 00:14 s3://mybucket2

建立新的bucket:

$ s3cmd mb s3://dev99

Bucket 』s3://dev99/』 created

上傳文件到現有的bucket:

$ s3cmd put 1.png 2.png 3.png s3://dev99

1.png -> s3://dev99/1.png [1 of 3]
26261 of 26261 100% in 5s 4.33 kB/s done
2.png -> s3://dev99/2.png [2 of 3]
201430 of 201430 100% in 2s 98.05 kB/s done
3.png -> s3://dev99/3.png [3 of 3]
46630 of 46630 100% in 0s 56.62 kB/s done

上傳文件的默認訪問許可權是私有的(private),就是只有你自己可以訪問,使用正確的訪問和安全密碼即可。
上傳公開訪問許可權的文件到現有bucket:

$ s3cmd put --acl-public 4.png s3://dev99

4.png -> s3://dev99/4.png [1 of 1]
30778 of 30778 100% in 8s 3.34 kB/s done
Public URL of the object is: http://dev99.s3.amazonaws.com/4.png

如果上傳的文件授予公開訪問許可權,任何人在瀏覽器中都可以通過http://dev99.s3.amazonaws.com/4.png 訪問。

查看一個現有bucket的內容:

$ s3cmd ls s3://dev99

2013-06-02 02:52 26261 s3://dev99/1.png
2013-06-02 02:52 201430 s3://dev99/2.png
2013-06-02 02:52 46630 s3://dev99/3.png
2013-06-02 02:56 30778 s3://dev99/4.png

下載現有bucket包含的文件(例如所有的.png文件):

$ s3cmd get s3://dev99/*.png

s3://dev99/1.png -> ./1.png [1 of 4]
26261 of 26261 100% in 0s 39.39 kB/s done
s3://dev99/2.png -> ./2.png [2 of 4]
201430 of 201430 100% in 7s 24.64 kB/s done
s3://dev99/3.png -> ./3.png [3 of 4]
46630 of 46630 100% in 1s 39.34 kB/s done
s3://dev99/4.png -> ./4.png [4 of 4]
30778 of 30778 100% in 0s 97.01 kB/s done

刪除現有bucket中的文件:

$ s3cmd del s3://dev99/*.png

File s3://dev99/1.png deleted
File s3://dev99/2.png deleted
File s3://dev99/3.png deleted
File s3://dev99/4.png deleted

獲取現有bucket的信息,包括存儲位置和訪問控制列表(ACL):

$ s3cmd info s3://dev99

s3://dev99/ (bucket):
Location: us-east-1
ACL: dan.nanni: READ
ACL: dan.nanni: WRITE
ACL: dan.nanni: READ_ACP
ACL: dan.nanni: WRITE_ACP

在上傳到現有的bucket之前,加密文件:

$ s3cmd -e put encrypt.png s3://dev99

/tmp/tmpfile-pzT1zV3kLZlxDwqA0kwy -> s3://dev99/encrypt.png [1 of 1]
196890 of 196890 100% in 1s 99.51 kB/s done

當用s3cmd下載一個加密過的文件時,它會自動檢測加密並在下載過程解密,因此下載和訪問加密文件時,就像通常所做的一樣:

$ s3cmd get s3://dev99/encrypt.png

s3://dev99/encrypt.png -> ./encrypt.png [1 of 1]
196890 of 196890 100% in 1s 131.29 kB/s done

刪除現有的bucket:

$ s3cmd rb s3://dev99

Bucket 』s3://dev99/』 removed

注意,你不能刪除一個非空的bucket.

『伍』 linux連接共享存儲區命令是什麼

linux客戶端:iscsi
#yum -y install iscsi*
發現iscsi存儲
#iscsiadm -m discovery --type sendtargets --portal 192.168.1.200:3260
192.168.1.200:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz
建立連接
#iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.1.200:3260 -l
刪除連接(所有)
iscsiadm -m node -U all

nfs:
mount 10.168.55.185:/alidata/www /alidata/www

『陸』 Linux存儲管理方式

這種方式中,將用戶程序的地址空間,注意,是 用戶程序的地址空間 分為若干個固定大小的區域,成為「頁」或「頁面」。我們可以知道,這也頁其實是不存在的,只是一種劃分內存空間的方法。也就是說,這種方式將用戶的程序 「肢解」 了,分成很多個小的部分,每個部分稱為一個「頁」。

將邏輯地址的前n位作為頁號,後面32-n位作為頁內偏移量。

由於進程的最後一頁經常裝不滿一個塊,從而形成了不可利用的碎片,稱之為 「頁內碎片」

作用:實現頁號到物理號的地址映射。

頁表是記錄邏輯空間(虛擬內存)中每一頁在內存中對應的物理塊號。但並非每一頁邏輯空間都會實際對應著一個物理塊,只有實際駐留在物理內存空間中的頁才會對應著物理塊。

系統會為每一個進程建立一張頁表,頁表是需要一直駐留在物理內存中的(多級頁表除外),另外頁表的起址和長度存放在 PCB(Process Control Block)進程式控制制結構體中。

可以在頁表的表項中設置相關的許可權控制欄位,例如設置存取控制欄位,用於保護該存儲塊的讀寫;若存取控制欄位為2位,則可以設置讀/寫、只讀和只執行等存取方式。

物理塊是實實在在存在於內存中的:

由於執行頻率高,要求效率比較高,需要使用硬體實現。

在系統中設置一個 頁表寄存器(PTR) ,其中存放頁表在內存的起始地址和頁表的長度。平時進程未執行的時候,頁表的起始地址和頁表長度放在本進程的PCB中。當調度程序調度到某個進程的時候,才將這兩個數據裝入 頁表寄存器

變換過程:

快表的變換機構

為了提高地址變換速度,可在地址變換機構中增設一個具有並行查詢能力的特殊高速緩沖寄存器,又稱為"聯想寄存器"或者「快表」。俗稱TLB。

快表與頁表的功能類似,其實就是將一部分頁表存到 CPU 內部的高速緩沖存儲器 Cache。CPU 定址時先到快表查詢相應的頁表項形成物理地址,如果查詢不到,則到內存中查詢,並將對應頁表項調入到快表中。但,如果快表的存儲空間已滿,則需要通過演算法找到一個暫時不再需要的頁表項,將它換出內存。

由於成本的關系,快表不可能做得很大,通常只存放 16~512 個頁表項,這對中、小型作業來說,已有可能把全部頁表項放在快表中;但對於大型作業而言,則只能將其一部分頁表項放入其中。由於對程序和數據的訪問往往帶有局限性,因此,據統計,從快表中能找到所需頁表項的概率可達 90% 以上。這樣,由於增加了地址變換機構而造成的速度損失可減少到 10% 以下,達到了可接受的程度。

我們可以採用這樣兩個方法來解決這一問題:

① 對於頁表所需的內存空間,可採用離散分配方式,以解決難以找到一塊連續的大內存空間的問題;

只將當前需要的部分頁表項調入內存,其餘的頁表項仍駐留在磁碟上,需要時再調入。

二級頁表的頁表項:

過程:

在採用兩級頁表結構的情況下,對於正在運行的進程,必須將其外層頁表調入內存,而對於內頁表則只需調入一頁或幾頁。為了表徵某頁的頁表是否已經調入內存,還應在外層頁表項中增設一個狀態位 S,其值若為 0,表示該頁表分頁不在內存中,否則說明其分頁已調入內存。進程運行時,地址變換機構根據邏輯地址中的 P1去查找外層頁表;若所找到的頁表項中的狀態位為 0,則產生一個中斷信號,請求 OS 將該頁表分頁調入內存。

多級頁表和二級頁表類似。多級頁表和二級頁表是為了節省物理內存空間。使得頁表可以在內存中離散存儲。(單級頁表為了隨機訪問必須連續存儲,如果虛擬內存空間很大,就需要很多頁表項,就需要很大的連續內存空間,但是多級頁表不需要。)

為什麼引入分段存儲管理?

引入效果:

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

段號表示段名,每個段都從0開始編址,並且採用一段連續的地址空間。

在該地址結構中,允許一個作業最長有64K個段,每個段的最大長度為64KB。

在分段式存儲管理系統中,為每一個分段分配一個連續的分區。進程的各個段,可以離散地裝入內存中不同的分區中。

作用:實現從邏輯地址到物理內存區的映射。

為了保證程序能夠正常運行,就必須能夠從物理內存中找出每個邏輯段所對應的位置。為此在系統中會為每一個進程建立一張 段表 。每個段在表中有一個表項,其中記錄了該段在內存中的起始地址和段的長度。一般將段表保存在內存中。

在配置了段表之後,執行的過程可以通過查找段表,找到每一個段所對應的內存區。

為了實現進程從邏輯地址到物理地址的變換功能,在系統設置了段表寄存器,用於存放段表的起始地址和段表長度TL。

在進行地址變換時,系統將邏輯地址中的段號與段表長度TL 進行比較。若 S > TL,表示段號太大,是訪問越界,於是產生越界中斷信號。若未越界,則根據段表的始址和該段的段號,計算出該段對應段表項的位置,從中讀出該段在內存的起始地址。然後,再檢查段內地址 d 是否超過該段的段長 SL。若超過,即 d>SL,同樣發出越界中斷信號。若未越界,則將該段的基址 d 與段內地址相加,即可得到要訪問的內存。

分頁和分段系統相似之處:兩者都採用離散分配方式,且都是通過地址映射機構實現地址變換。

但在概念上兩者完全不同,主要表現在下述三個方面:

分頁系統以頁面作為內存分配的基本單位,能有效地提高內存利用率,而分段系統以段作為內存分配的基本單位,它能夠更好地滿足用戶多方面的需要。

段頁式地址結構由段號、段內頁號及頁內地址三部分所組成

段頁式系統的基本原理是分段和分頁原理的結合,即先將用戶程序分成若干個段,再把每個段分成若干個頁,並為每一個段賦予一個段名。如下圖展示了一個作業地址空間的結構。該作業有三個段:主程序段、子程序段和數據段;頁面大小為 4 KB:

在段頁式系統中,為了實現從邏輯地址到物理地址的變換,系統中需要同時配置段表和頁表。段表的內容與分段系統略有不同,它不再是內存始址和段長,而是頁表始址和頁表長度。下圖展示出了利用段表和頁表進行從用戶地址空間到物理(內存)空間的映射。

在段頁式系統中,為了便於實現地址變換,須配置一個段表寄存器,其中存放段表始址和段長 TL。進行地址變換時,首先利用段號 S,將它與段長 TL 進行比較。若 S < TL,表示未越界,於是利用段表始址和段號來求出該段所對應的段表項在段表中的位置,從中得到該段的頁表始址,並利用邏輯地址中的段內頁號 P 來獲得對應頁的頁表項位置,從中讀出該貝所在的物理塊號 b,再利用塊號 b 和頁內地址來構成物理地址。

在段頁式系統中,為了獲得一條指令或數據,須三次訪問內存。第一次訪問是訪問內存中的段表,從中取得頁表始址;第二次訪問是訪問內存中的頁表,從中取出該頁所在的物理塊號,並將該塊號與頁內地址一起形成指令或數據的物理地址;第三次訪問才是真正從第二次訪問所得的地址中取出指令或數據。

顯然,這使訪問內存的次數增加了近兩倍。為了提高執行速度,在地址變換機構中增設一個高速緩沖寄存器。每次訪問它時,都須同時利用段號和頁號去檢索高速緩存,若找到匹配的表項,便可從中得到相應頁的物理塊號,用來與頁內地址一起形成物理地址:若未找到匹配表項,則仍需第三次訪問內存。

參考鏈接:

熱點內容
王者鍵盤怎麼設置安卓 發布:2025-02-05 10:32:01 瀏覽:373
阿里雲輕量伺服器ip搭建 發布:2025-02-05 10:24:46 瀏覽:486
編程高精度 發布:2025-02-05 10:22:28 瀏覽:230
使命召喚如何配置爆炸狙 發布:2025-02-05 10:08:12 瀏覽:143
java訪問共享目錄 發布:2025-02-05 10:03:56 瀏覽:281
行車記錄儀存儲卡多大合適 發布:2025-02-05 09:35:21 瀏覽:112
oppo手機鎖屏密碼忘了怎麼辦 發布:2025-02-05 09:33:50 瀏覽:124
phprsa演算法 發布:2025-02-05 09:33:48 瀏覽:231
快寫編譯器 發布:2025-02-05 09:29:15 瀏覽:590
java隨機驗證碼 發布:2025-02-05 09:27:45 瀏覽:637