抽象存儲
A. 在數據結構中數據、數據元素、數據對象、數據結構、存儲結構、數據類型以及抽象數據類型的定義分別是什麼
數據:是能輸入到計算機中並能被計算機程序處理的符號的總稱。
數據元素:是數據的基本單位,它在計算機處理和程序設計中通常作為一個整體進行考慮和處理。一個數據元素可由若干數據項組成。
數據對象:是具有相同特徵的數據元素的集合,是數據的一個子集。
數據結構:是數據元素的組織形式,或數據元素相互之間存在一種或多種特定關系的集合。
數據的存儲結構:是數據的邏輯結構在計算機內存中的存儲方式,又稱物理結構。
數據類型:是一組具有相同性質的操作對象以及該組操作對象上的運算方法的集合。
抽象數據類型:是指一個數學模型以及在該模型上定義的一套運算規則的集合。
B. 存儲的概念
大概和存錢差不多吧~~
有人存錢為了將來花~~
有人做原始的資本積累~~
抽象的存儲就像一張銀行卡~~
只有拿出來才是具體的票票~~
C. Java中抽象類和介面在內存中存儲位置在哪
類的實例方法在內存中是只有一份,不過肯定不會是第一個對象中,如果是第一個對象的話,那麼當第一個對象被銷毀的時候,那麼後面的對象就永遠無法調用了... 類的實例方法存在一個專門的區叫方法區,事實上類剛裝載的時候就被裝載好了,不過它們在"睡眠
D. c語言中,「變數是對程序中數據存儲空間的抽象」怎麼理解啊
就是變數是存儲空間的名字。存儲空間就像房子,而變數就是房子的名字。指針就是房子的地址。
E. 簡述下列術語,數據、數據元素、數據對象、數據結構、存儲結構、數據類型和抽象數據類型是什麼意思
數據:指所有能夠輸入到計算機中並被計算機程序處理的符號集合。
數據元素(data element):數據集合中的一個實體,是計算機程序中加工處理的基本單位。例如:一條學生記錄(包括學號、姓名、年齡等)就是一個數據元素
數據對象(data object):性質相同的數據元素的集合。是數據的一個子集。
數據結構(data structure):相互之間存在一種或多種關系的數據元素的集合。即包括數據元素的集合和數據元素之間的關系的集合。
存儲結構:數據結構在計算機中的表示(也稱映像)叫做物理結構。又稱為存儲結構。
數據類型(data type):是一個「值」的集合和定義在此集 合上的「一組操作」的總稱。
抽象數據類型(abstract data type,簡稱ADT):是指一個數學模型以及定義在此數學模型上的一組操作。
F. 計算機系統的硬體抽象、軟體抽象和分層封裝思想是什麼
抽象是計算機科學中最為重要的概念之一。比如我們為一組函數規定一個簡單的應用程序介面(API)就是一個很好的編程習慣,程序員無需了解它內部的工作便可以使用這些代碼。不同的編程語言提供不同形式和等級的抽象支持,例如Java類的聲明和C語言的函數原型。
如下圖,在處理器里,指令集架構提供了對實際處理器硬體的抽象。使用這個抽象,機器代碼表現得幾號箱運行在一個依稀執行一條指令的處理器上。底層的已經遠比抽象描述的要復雜驚喜,它並行的執行多條指令,但又總是與那個簡單有序的模型保持一致。只要執行的模型一樣,不同的處理器實現也能執行同樣的機器代碼,而有提供不同的開銷和性能。
文件:對I/O設備的抽象
虛擬內存:對程序存儲器的抽象
進程:對一個正在運行的程序的抽象
虛擬機:對整個計算機的抽象,包括操作系統,處理器和程序
G. 數據的存儲方法有哪些
什麼是分布式存儲
分布式存儲是一種數據存儲技術,它通過網路使用企業中每台機器上的磁碟空間,這些分散的存儲資源構成了虛擬存儲設備,數據分布存儲在企業的各個角落。
分布式存儲系統,可在多個獨立設備上分發數據。傳統的網路存儲系統使用集中存儲伺服器來存儲所有數據。存儲伺服器成為系統性能的瓶頸,也是可靠性和安全性的焦點,無法滿足大規模存儲應用的需求。分布式網路存儲系統採用可擴展的系統結構,使用多個存儲伺服器共享存儲負載,利用位置伺服器定位存儲信息,不僅提高了系統的可靠性,可用性和訪問效率,而且易於擴展。
分布式存儲的優勢
可擴展:分布式存儲系統可以擴展到數百甚至數千個這樣的集群大小,並且系統的整體性能可以線性增長。
低成本:分布式存儲系統的自動容錯和自動負載平衡允許在低成本伺服器上構建分布式存儲系統。此外,線性可擴展性還能夠增加和降低伺服器的成本,並實現分布式存儲系統的自動操作和維護。
高性能:無論是針對單個伺服器還是針對分布式存儲群集,分布式存儲系統都需要高性能。
易用性:分布式存儲系統需要提供方便易用的界面。此外,他們還需要擁有完整的監控和操作工具,並且可以輕松地與其他系統集成。
杉岩分布式統一存儲USP
利用分布式技術將標准x86伺服器的HDD、SSD等存儲介質抽象成資源池,對上層應用提供標準的塊、文件、對象訪問介面,
同時提供清晰直觀的統一管理界面,減少部署和運維成本,滿足高性能、高可靠、高可擴展性的大規模存儲資源池的建設需求。
H. 用抽象鏈表儲存10個復數,並在遍歷鏈表時直接獲得它們的和。 下面的代碼哪錯了
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>//頭文件
#include<conio.h>
typedef struct COMPLEX//這里定義
{ double real,imag;
struct COMPLEX*next;
}COMPLEX;
typedef struct
{ double real,imag;}ACOMPLEX;
#define LEN sizeof(COMPLEX)
COMPLEX*creat();
ACOMPLEX LITraverse(COMPLEX*list);
int main()
{
COMPLEX*heads;
ACOMPLEX average;
printf("Please input ten complex.The real and the imag are divided by ' '.");
heads=creat();
average=LITraverse(heads);
printf("The average of the ten complex is %lf+%lfi.",average.real,average.imag);
getch();
return 0;
}
COMPLEX *creat()
{
COMPLEX*head,*p1,*p2;
int n=0;
head=(COMPLEX*)malloc(LEN);
p1=p2=(COMPLEX*)malloc(LEN);
scanf("%lf %lf",&p1->real,&p1->imag);
head->next=p1;
while(n<9)//多了一次,
{
p1=(COMPLEX*)malloc(LEN);
scanf("%lf %lf",&p1->real,&p1->imag);
p2->next=p1;
p2=p1;
++n;
}
p2->next=NULL;
return head;
}
ACOMPLEX LITraverse(COMPLEX*list)
{
ACOMPLEX ave;
COMPLEX*t=list->next;
ave.real=0;
ave.imag=0;
if(list==NULL)
printf("ERROR!LITraverse:Parameter illegal.");
while(t!=NULL){
ave.real+=t->real;
ave.imag+=t->imag;
t=t->next;
}
ave.real=ave.real/10;
ave.imag=ave.imag/10;
return ave;
}
可以直接運行
I. 引用抽象類,設計一個存儲藝術作品的程序.
723732
J. 存儲管理的抽象模型
虛擬地址到物理地址映射的抽象模型
在討論Linux是如何具體實現對虛擬內存的支持前,有必要看一下更簡單的抽象模型。
在處理器執行程序時需要將其從內存中讀出再進行指令解碼。在指令解碼之前它必須向內存中某個位置取出或者存入某個值。然後執行此指令並指向程序中下一條指令。在此過程中處理器必須頻繁訪問內存,要麼取指取數,要麼存儲數據。
虛擬內存系統中的所有地址都是虛擬地址而不是物理地址。通過操作系統所維護的一系列表格由處理器實現由虛擬地址到物理地址的轉換。
為了使轉換更加簡單,虛擬內存與物理內存都以頁面來組織。不同系統中頁面的大小可以相同,也可以不同,這樣將帶來管理的不便。Alpha AXP處理器上運行的Linux頁面大小為8KB,而Intel X86系統上使用4KB頁面。每個頁面通過一個叫頁面框號的數字來標示(PFN) 。
頁面模式下的虛擬地址由兩部分構成:頁面框號和頁面內偏移值。如果頁面大小為4KB,則虛擬地址的 11:0位表示虛擬地址偏移值,12位以上表示虛擬頁面框號。處理器處理虛擬地址時必須完成地址分離工作。在頁表的幫助下,它將虛擬頁面框號轉換成物理頁面框號,然後訪問物理頁面中相應偏移處。
圖3.1給出了兩個進程X和Y的虛擬地址空間,它們擁有各自的頁表。這些頁表將各個進程的虛擬頁面映射到內存中的物理頁面。在圖中,進程X的虛擬頁面框號0被映射到了物理頁面框號1。理論上每個頁表入口應包含以下內容:
1、有效標記,表示此頁表入口是有效的
2、頁表入口描敘的物理頁面框號
3、訪問控制信息。用來描敘此頁可以進行哪些操作,是否可寫?是否包含執行代碼?
4、虛擬頁面框號是為頁表中的偏移。虛擬頁面框號5對應表中的第6個單元(0是第一個)。
為了將虛擬地址轉換為物理地址,處理器首先必須得到虛擬地址頁面框號及頁內偏移。一般將頁面大小設為2的次冪。將圖3.1中的頁面大小設為0x2000位元組(十進制為8192)並且在進程Y的虛擬地址空間中某個地址為0x2194,則處理器將其轉換為虛擬頁面框號1及頁內偏移0x194。
處理器使用虛擬頁面框號為索引來訪問處理器頁表,檢索頁表入口。如果在此位置的頁表入口有效,則處理器將從此入口中得到物理頁面框號。如果此入口無效,則意味著處理器存取的是虛擬內存中一個不存在的區域。在這種情況下,處理器是不能進行地址轉換的,它必須將控制傳遞給操作系統來完成這個工作。
某個進程試圖訪問處理器無法進行有效地址轉換的虛擬地址時,處理器如何將控制傳遞到操作系統依賴於具體的處理器。通常的做法是:處理器引發一個頁面失效錯而陷入操作系統核心,這樣操作系統將得到有關無效虛擬地址的信息以及發生頁面錯誤的原因。
再以圖3.1為例,進程Y的虛擬頁面框號1被映射到系統物理頁面框號4,則再物理內存中的起始位置為 0x8000(4 * 0x2000)。加上0x194位元組偏移則得到最終的物理地址0x8194。
通過將虛擬地址映射到物理地址,虛擬內存可以以任何順序映射到系統物理頁面。例如,在圖3.1中,進程X的虛擬頁面框號0被映射到物理頁面框號1而虛擬頁面框號7被映射到物理頁面框號0,雖然後者的虛擬頁面框號要高於前者。這樣虛擬內存技術帶來了有趣的結果:虛擬內存中的頁面無須在物理內存保持特定順序。