精华内容
下载资源
问答
  • C++中的抽象概念详解

    2020-04-23 11:38:31
    C++中的抽象概念详解 本文转自: c++中的抽象概念详解 一、定义. 在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够...

    C++中的抽象概念详解

    本文转自:
    c++中的抽象概念详解

    一、定义.

    在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的, 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类 。纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”。

    virtual void funtion1()=0
    

    二、引入原因:

    1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。

    2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。

    为了解决上述问题,引入了纯虚函数的概念,将函数定义为纯虚函数,则编译器要求在派生类中必须予以重载以实现多态性。同时含有纯虚拟函数的类称为抽象类,它不能生成对象。

    三、相似概念:

    1、多态性

    指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。

    a.编译时多态性:通过重载函数实现

    b 运行时多态性:通过虚函数实现。

    2、虚函数

    虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载

    3、抽象类

    包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。

    四、程序

    基类:

    class A
    {
    public:
    A();
    void f1();
    virtual void f2();
    virtual void f3()=0;
    virtual ~A();
    
    };
    
    子类:
    class B : public A
    {
    public:
    B();
    void f1();
    void f2();
    void f3();
    virtual ~B();
    
    };
    主函数:
    int main(int argc, char* argv[])
    {
    A *m_j=new B();
    m_j->f1();
    m_j->f2();
    m_j->f3();
    delete m_j;
    return 0;
    }
    

    程序解释:

    f1()是一个普通的重载.

    调用m_j->f1();会去调用A类中的f1(),它是在我们写好代码的时候就会定好的.

    也就是根据它是由A类定义的,这样就调用这个类的函数.

    f2()是虚函数.

    调用m_j->f2();会调用m_j中到底保存的对象中,对应的这个函数.这是由于new的B

    对象.

    f3()与f2()一样,只是在基类中不需要写函数实现.

    五、总结

       抽象就是把有共同属性或方法的抽象成一个类实现不了自己定义的接口(纯虚函数)就是抽象类。反过来想。如:我们定义了动物的类,属性是有嘴,方法是 吃。我们没有定义吃的具体实现。在派生类 老虎里 定义了 吃的 具体实现  吃肉,派生类 牛 里定义了 吃 的 具体实现 吃草,这就说明动物这个类 是抽象类,决定不了吃的具体实现,必须实现了吃 这个接口的类才不是抽象的类。如果实现了 吃的方法,那动物这个类就不能就不能通过接口说明 它是个抽象类。
    
      定义纯虚函数就是把派生类里的共同的方法抽象出来放到基类里,但并没有具体实现(描述)(因为是抽象的无法具体描述对象),派生类里对这些共同的方法来描述。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。把’吃肉‘,’吃草‘的共同方法’吃‘提取出来,那么动物就是抽象类。
    
      将函数定义为纯虚函数能够说明,该函数为后代类型提供了可以覆盖的接口,但是这个类中的版本决不会调用。
    
    
    
     为什么说只要拥有纯虚函数的类就是抽象类?
    
     派生类能够描述对象的信息,而基类类却不能描述此类对象的信息(即纯虚函数),就是抽象类。
    
     抽象类定义是对象有共同属性或方法抽象成一个类,但无法描述具体的对象(肯定无法描述),它是不存在的
    
     首先基类里 存在着派生类的 共同的属性 方法,但是如果是虚函数的话,基类的方法就和派生不一样了,
     因为虚函数是动态绑定,它改写基类的虚函数后,就与基类的实现不同了,这样基类就没有提取派生类的共同方法,
     基类也不是抽象类。如果定义为纯虚函数,则基类的纯虚函数就是个接口,纯虚函数不能被调用,它的存在只是为了在派生类中重新定义。通过纯虚函数的定义来确定抽象类以区别具体类。(同样的方法因为派生类能够调用而基类不能调用,所以是抽象类)抽象类也就是无法实例化。
    
    展开全文
  • 简介在计算机网络里有很多抽象概念难以理解,还有一些相似的概念很容易混淆。比如什么是IP地址,什么又是MAC地址,他们之间又有什么区别和联系;再比如什么是路由器,什么又是路由表,它们又是用来干什么的?诸如...

    简介

    在计算机网络里有很多抽象的概念难以理解,还有一些相似的概念很容易混淆。比如什么是IP地址,什么又是MAC地址,他们之间又有什么区别和联系;再比如什么是路由器,什么又是路由表,它们又是用来干什么的?诸如此类的问题我相信很多初学者都很难真正的理解清楚。

    名词解释

    在形象的解释这些名词之前,我们先来看一看书面上对这些名词的解释。

    路由器:是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

    路由表:路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。

    网关:网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。

    DNS服务器:是进行域名和与之相对应的IP地址转换的服务器。DNS中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。

    DHCP服务器:由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

    IP地址: IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

    MAC地址:称为物理地址、硬件地址,用来定义网络设备的位置。MAC地址是网卡决定的,是唯一的且固定的。

    MAC地址绑定: MAC地址绑定就是利用三层交换机的安全控制列表将交换机上的端口与所对应的MAC地址进行捆绑。

    子网掩码: 它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

    ARP地址解析: 实现任意网络层地址到任意物理地址的转换,例如IP地址转换为MAC地址。

    ARP欺骗: 由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。

    DDOS攻击: 又指分布式拒绝服务攻击,通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。

    形象理解

    在知乎上有人转载过一片文章用来形象说明这些概念,原文作者已经找不到了,我现在用这篇文章再给大家讲解一下这些名词的意思,以及加上自己的一些补充。

    假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。
    但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一个看门的王大爷(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。于是你在家里拨通了门口李大爷的电话,有了下面的对话:
    小不点:李大爷,我想找班主任查一下小明的电话号码行吗?
    李大爷:好,你等着。(接着李大爷给你的班主任挂了一个电话,问清楚
    了小明的电话)问到了,他家的号码是211.99.99.99
    小不点:太好了!李大爷,我想找小明,你再帮我联系一下小明吧。
    李大爷:没问题。(接着李大爷向电话局发出了请求接通小明家电话的请
    求,最后一关当然是被转接到了小明家那个院子的王大爷那里,然后王大
    爷把电话给转到小明家)
    就这样你和小明取得了联系。
    至于DHCP服务器嘛,可以这样比喻:
    你家院子里的居民越来越多了,传达室李大爷那里的电话交换机已经不能满足这么多居民的需求了,所以只好采用了一种新技术叫做DHCP,居民们开机的时候随机得到一个电话号码,每一次得到的号码都可能会不同。
    你家门口的李大爷:就是你的网关
    你的班主任:就是你的DNS服务器
    传达室的电话交换机:就是你的DHCP服务器
    同上,李大爷和王大爷之间的对话就叫做路由
    另:如果还有个小朋友叫做小暗,他住的院子看门的是孙大爷,因为小暗的院子刚盖好,孙大爷刚来不久,他没有李大爷和王大爷办公室的电话(李大爷和王大爷当然也没有他的电话),这时会有两种情况:
    1、居委会的赵大妈告诉了孙大爷关于李、王两位大爷的电话(同时赵大妈也告诉了李、王关于孙的电话),这就叫静态设定路由
    2、赵大妈病了,孙大爷自己到处打电话,见人就说:“我是小暗他们院子管电话的”,结果被李、王二位听到了,就记在了他们的通讯录上,然后李、王就给孙大爷回了个电话说:“我是小明(小不点)他们院子管电话的”,这就叫动态设定路由
    然后有一天小不点要找小暗,结果自然是小不点给李大爷打电话说:“大爷,我找小暗”(这里省略了李大爷去查小暗电话的过程,假设他知道小暗的电话),李大爷一找通讯录:“哦,小暗的院子的电话是孙大爷管着的,要找小暗自然先要通知孙大爷,我可以通知王大爷让他去找孙大爷,也可以自己直接找孙,那当然是自己直接找孙方便了”,于是李大爷给孙大爷打了电话,然后孙大爷又把电话转到了小暗家。
    这里李大爷的通讯录叫做路由表
    李大爷选择是自己直接找孙大爷还是让王大爷帮忙转接叫做路由选择
    李大爷之所以选择直接找孙大爷是有依据的,因为他直接找孙大爷就能一步到位,如果要王大爷转接就需要两步才能完成,这里的“步”叫做“跳数”,李大爷的选择遵循的是最少步骤(跳数)原则(如果他不遵守这个原则,小不点可能就会多等些时间才能找到小暗,最终结果可能导致李大爷因工作不力被炒鱿鱼,这叫做“延时太长,选路原则不合理,换了一个路由器”)
    当然,事情总是变化的,小不点和小明吵架了,这些天小不点老是给小暗打电话,小明心里想:“操,他是不是在说我坏话啊?”于是小明决定偷听小不点和小暗的通话,但是他又不能出院子,怎么办呢?小明做了这样一个决定:
    首先他告诉自己院里管电话的王大爷说:“你给李大爷打个电话说小暗搬到咱们院子了,以后凡是打给他的电话我来接”,王大爷没反映过来(毕竟年纪大了啊!)就给李大爷打了电话,说:“现在我来管理小暗的电话了,孙已经不管了”,结果李大爷就把他的通讯录改了,这叫做路由欺骗
    以后小不点再找小暗,李大爷就转给王大爷了(其实应该转给孙大爷的),王大爷收到了这个电话就转给了小明(因为他之前已经和小明说好了),小明收到这个电话就假装小暗和小不点通信。因为小明作贼心虚,害怕明天小不点和小暗见面后当面问他,于是通信断了之后,又自己以小不点的名义给小暗通了个电话复述了一遍刚才的话,有这就叫数据窃听
    再后来,小不点还是不断的和小暗联系,而零落了小明,小明心里嘀咕啊:“我不能总是这样以小暗的身份和小不点通话啊,外一有一天露馅了怎么办!”于是他想了一个更阴险的招数:“干脆我也不偷听你们的电话了,你小不点不是不给我打电话吗!那我让你也给小暗打不了,哼哼!”,他怎么做的呢?我们来看:
    他联系了一批狐朋狗友,和他们串通好,每天固定一个时间大家一起给小暗院子传达室打电话,内容什么都有,只要传达室的孙爷爷接电话,就会听到“打雷啦,下雨收衣服啊!”、“人是人他妈生的,妖是妖他妈生的”、“你妈贵姓”等等,听的脑袋都大了,不听又不行,电话不停的响啊!终于有一天,孙爷爷忍不住了,大喊一声:“我受不了拉!!!!”,于是上吊自杀了!
    这就是最简单的DDOS攻击,孙爷爷心理承受能力弱的现象叫做“数据报处理模块有BUG”,孙爷爷的自杀叫做“路由器瘫痪”。如果是我,就会微笑着和他们拉家常,例如告诉他们“我早就听了天气预报,衣服10分钟前已经收好了”或者“那你妈是人还是妖”或者“和你奶奶一个姓”等等,我这种健全的心理叫做“健壮的数据报处理,能够抵御任何攻击”
    孙爷爷瘫了之后,小不点终于不再给小暗打电话了,因为无论他怎么打对方都是忙音,这种现象叫做“拒绝服务”,所以小明的做法还有一个名字叫做“拒绝服务攻击”。
    小明终于安静了几天,…
    几天后,小明的院子来了一个美丽的女孩,名字叫做小丽,小明很喜欢她(小小年纪玩什么早恋!)可是小丽有个很帅的男朋友,小明干瞪眼没办法。当然这里还是要遵循上面的原则:小丽是不能出院子的。那个男的想泡小丽自然只能打电话,于是小明又蠢蠢欲动了:
    还记得王爷爷是院子的电话总管吗?他之所以能管理电话是因为他有一个通讯录,因为同一个院子可能有2个孩子都叫小明,靠名字无法区分,所以通讯录上每一行只有两项:
    门牌电话
    一号门 1234567 (这个是小明的)
    二号门 7654321 (这个是小丽的)
    ……
    王爷爷记性不好,但这总不会错了吧(同一个院子不会有2个“二号门”吧)?每次打电话人家都要说出要找的电话号码,然后通过通讯录去院子里面敲门,比如人家说我找“1234567”,于是王爷爷一比较,哦,是一号门的,他就去敲一号门“听电话”,如果是找“7654321”,那他就找二号门“听电话”。
    这里的电话号码就是传说中的“IP地址
    这里的门牌号就是传说中的网卡的’MAC‘地址(每一块网卡的MAC地址都是不一样的,这是网卡的制造商写死在网卡的芯片中的)
    小明心里想“奶奶的,老子泡不到你也别想泡”,于是他打起了王爷爷通讯录的主意,经过细心的观察,周密的准备,他终于发现王爷爷有尿频的毛病(毕竟是老人啊…),终于在一个月黑风高的白天,王爷爷去上厕所了,小明偷偷的摸进传达室,小心翼翼的改了王爷爷的通讯录……
    过了几天,小丽的男朋友又给小丽打来了电话,对方报的电话是“7654321”,王爷爷一看通讯录,靠:
    门牌电话
    一号门 1234567 (这个是小明的)
    一号门 7654321 (注意:这个原来是小丽的,但是被小明改了)
    ……
    王爷爷不知道改了啊,于是就去找一号门的小明了,小明心里这个美啊,他以小丽父亲的口吻严厉的教训了那个男的和小丽之间不正当的男女关系,结果那个男的恭恭敬敬的挂了电话。当然小丽并不知道整个事情的发生…
    这里小明的行为叫做“ARP欺骗”(因为在实际的网络上是通过发送ARP数据包来实现的,所以叫做“ARP欺骗”),王爷爷的通讯录叫做“ARP表
    这里要注意:王爷爷现在有两个通讯录了,一个是记录每个院子传达室电话的本本,叫做“路由表”,一个是现在说的记录院子里面详细信息的本本,叫做“ARP表”。
    有句命言是“人们总是在追求完美的,尽管永远也做不到”(请记住这句话,因为这是一个大名人–也就是我,说的)
    王爷爷的制度中有一条是这么写的“每个月要重新检查一下门牌号和电话的对应本(也就是ARP表)”,这个动作叫做“刷新ARP表”,每个月的时间限制叫做“刷新ARP表的周期”。这样小明为了让那个男的永远不能找到小丽,之后每个月都要偷偷改一次那个通讯录,不过这样也是不得不做的事啊!
    补充一点,小明是很聪明的,如果通讯录(ARP表)被改成了这样:
    门牌(MAC)电话(IP)
    一号门 1234567 (这个是小明的)
    二号门 1234567 (注意:这个被小明改了,但是他一时头晕改错了)
    ……
    就会是计算机就会弹出一个对话框提示“出现重复的IP地址”,最终会导致王爷爷不知所措,于是通知一号门和二号门,你们的电话重复了。这样小丽就知道有人在破坏她的好事,这个现象叫做“骗局被揭穿了”
    小不点知道了小明偷听他和小暗的电话,于是就和小暗约定好了密码。小不点在家里把要说的加密了之后告诉小暗。土豆-〉星期三,地瓜-〉请客,笨蛋-〉小不点家。于是小不点告诉小暗:土豆笨蛋地瓜。小明听了???不懂。。。。郁闷了。。。这是加密
    除此之外,小丽也知道了小明改他家的电话号码了。于是王爷爷就登门一个一个把电话和门牌号记下来。并且藏起来不允许外人修改,只能自己有钥匙(密码)。这是ip地址和MAC地址绑定。当有人改了电话号码的时候,就得找王爷爷改。麻烦是麻烦了,但是安全了。不过小明偷偷的把王爷爷的钥匙偷配了一把(盗窃密码成功),于是他还可以修改。这样么,就这样了。

    原文中没有提到子网掩码和ARP地址解析,我认为子网掩码在这个模型中可以理解为判断电话号码匹配的一种机制,因为电话号码是按照区域分配不同的号段,号段匹配上了说明你在区域子网内,则可以进行通信。
    ARP地址解析则可以理解为当王大爷接到李大爷打来的电话,通过相应的门牌号找小丽的过程。

    展开全文
  • 概念是很重要的,它丰富了人们的认知,停留在一个论域,得清楚其中的概念。 ...1. 《程序设计语言—...其他关键词:抽象概念(现象与本质,有时候是相对的,很有趣)、思维方法、认识论、方法论

    概念是很重要的,它丰富了人们的认知,停留在一个论域,得清楚其中的概念。


    1. 《程序设计语言—实践之路》的序(foreword)中说,“计算机科学惯于在抽象之上建立抽象。在我们的领域里,把细节隐藏到简化界面之下的功能即是一种利器,也是一种不得已而为之。”


    2. 计算机科学中的“抽象”:抽象思维,抽象方法

    以下来自,维基百科 “抽象画”

    在计算机科学中,抽象化(英语:Abstraction)是将数据与程序,以它的语义来呈现出它的外观,但是隐藏起它的实作细节。抽象化是用来减少程序的复杂度,使得程序员可以专注在处理少数重要的部份。一个电脑系统可以分区成几个抽象层(Abstraction layer),使得程序员可以将它们分开处理。

    抽象和抽象层:

    抽象就是把一个问题或模型,以不同规则或方法所得出的不同的解(求解方法和解本身即抽象层),这些不同的解可以组合并还原成问题或模型的本身。
    抽象的意义是可以忽略不是求解过程中必需的解。

    编程语言:

    在程序设计中,高级语言是对机器指令串行的抽象。高级语言的出现,使得程序的编写得以简化,极大提高了程序的编写效率。随着软件技术的发展,组件技术进一步提升了程序抽象的级别。
    另一种可取的替代方法是设计一种语言机制,允许程序师在需要的时候构建自己的抽象方法。一个通用的机制是使用过程(procedure)。通过分离过程的定义和规则,编程语言包含了两种重要的抽象方法:参数化抽象(abstraction by parameterization) 和规格化抽象(abstraction by specification)。

    其中:
    参数化抽象是用参数替换数据特征来进行抽象。这样能够归纳出模块,从而使其可以用于更多的情况。例如,可以定义一个排序抽象,既能够实现对实数数组的排序,又能够实现对整型数组的排序,或者甚至对数组类型这类一般结构都有用。
    规格化抽象是将运行细节(即模块如何实现)抽象为用户所需求的行为(即模块做什么)。这是从具体实现中抽象出模块,需要的仅仅是模块的实现能够符合我们所依赖的表述形式。每当将一个过程与一个注释(这个注释提供了充分的信息,是其他人不用看过程主体就能使用该过程)关系起来,我们就会使用规格化抽象。


    程序设计中,抽象类型别包括下列4类:
    a:过程抽象:能够引入一些新的操作;
    b:数据抽象:能够引入新的数据对象类型;
    c:反复运算抽象:能够反复运算遍历在集合中的元素,而不必显示如何获得元素的细节;
    d:类型层次:能够从多个单独的数据类型中抽象成几组相关的类型。


    关于计算机中的抽象


    4. 绘画里的“抽象”

    标题党:略


    其他关键词:抽象概念(现象与本质,有时候是相对的,很有趣)、思维方法、认识论、方法论



    展开全文
  • 金字塔形的存储设备,操作系统的抽象概念 系统在数据的创书上花费了大量的时间.硬件开发商(主要是那个做存储介质的人)为了减少这种数据传输的时间成本,此阿勇了以中高速缓存的技术去减少这种时间成本.   高速缓存...

    金字塔形的存储设备,操作系统的抽象概念

    系统在数据的创书上花费了大量的时间.硬件开发商(主要是那个做存储介质的人)为了减少这种数据传输的时间成本,此阿勇了以中高速缓存的技术去减少这种时间成本.

     

    高速缓存被置放于处理器中,与处理器中寄存器文件直接进行数据交换,这样大大较少了数据传输的时间成本,使得程序的运行速度可以得到数倍的提升.作为一个搞电脑的,入股可以适当的利用高速缓存去存放一些程序运行过程中常用的数据,可以将程序的运行速度提高数倍甚至数个数量级.

     

    你回想一下在网页中,你第一个打开一个网页,可能很慢,但是当你打开第二次的时候,可能快点了,多开几次可能很快乐,你如果知道怎么查看缓存的话,你肯定能知道你缓存了该网页不少的图片啥的.说这个例子,没啥特别的,就是想告诉你关于缓存的一点东西.我想告诉你高速缓存的重要性.

     

    下图展示了硬件分布中,告诉缓存的位置.

     

     

     

     

     

     

    存储设备的金字塔

    当今的计算机系统中,基本上全部都置入了各种各样的存储设备,这些存车设备呈明显的层次结构,他们的特定是容量越大,速度越慢(你的硬盘容量较大,但是速度呢?)因此如果按照容量和速度将他们以图示的方式呈现出来的话,看起来像一个金字塔(如果你书序学得好的话,就是一个什么随着x增大

    y减小的函数,我数学不好,不知道咋描述,你懂).盗个图

     

     

     

    英文版,咋办?想想那个函数,x变大,y减小,x代表容量,y代表速度.联系起来.

     

    解释一下这个图:左边的意思更小更快但是也更贵的存储设备,包括寄存器以及L1-L3的高速缓存,以及更大更慢更便宜的存储设备,包括主存,贝蒂磁盘,以及远程存储设备.通常意义上,我们将上一层的存储设备作为当前设备的高速缓存,比如L1的告诉缓存是寄存器,L2的高速缓存是L1,以此类推.

     

     

    OS是硬件的管理者

    操作系统是帮我们控制硬件的软件,它就像是应用程序与硬件程序的中间这,在两之间扮演一个翻译的角色,关系如下图:

     

     

    OS操作系统提供了几个我们属性的概念去表示硬件,,比如进程,虚拟存储器,文件.他们表示的硬件设备如下所示:

     

     

    能看出文件是对I/O设备的抽象描述,而虚拟存储器是对主存和I/O设备的统称吗?最后还有一个,进程在此基础上又加入了处理器.

    什么意思呢,就是说对于操作系统来所,这些硬件其实都被抽象化了,对于OS来说,文件就是I/O设备.

     

    进程

    进程是操作系统对一个正在运行的程序的抽象.OS会记录每一个进程的状态,这些状态就称作进程的上下文.这些状态主要包括了PC,寄存器以及主存的当前内容.OS在进程间切换的时候,也会切换相应的上下文,从而保证进程恢复到之前的状态.

    在进程当中,又被计算机界的大神们引入了线程的概念,没办法又得学,我想起了我高中的时候,数学老师说过一句话,如果有人穿越了,在高斯5岁的时候把他弄死,咱们的数学课本最少得薄一半....

     

     

    虚拟存储器

    对于我这种渣渣来说,什么是寻你存储器都不知道,今天一起学习,虚拟存储器是一种抽象描述,从物理上讲,它包含了I/O设备和主存.在逻辑上讲,虚拟存储器被描述为虚拟地址空间.下图为进程的虚拟地址空间表示:

     

     

     

    (看完这个图我真心不知道这个图想说啥,看不懂)

    这里的地址自上向下依次增大,可以看出.图中标注了起始地址,分别为0x08048000(32)以及0x00400000(64),然后向上分别是只读代码和数据,读写数据,运行时堆,共享库的内存映射区间,用户栈以及内核虚拟内存区域.

    好多新名词,记不住没关系,慢慢来.在所记住了这个玩意也没啥用处.要真正理解了.

     

    程序代码和数据:这些内容的起始地址就是0x08048000,首先是代码,然后是一些全局变量.

    :是运行时可以动态扩展的一部分内村区域,他可以由mallocfree这样的标准库函数操作.

    共享库:用于存放共享库的代码和数据.

    :在用户虚拟地址空间的顶部是栈,这部分区域与函数的执行有密切的关系.

    内核虚拟存储区域:内核是OS的一部分,Linux内核应该听过吧?内核可以看作一个进程,在计算机运行期间总是在运行着,因此这部分内存区域对用户程序是不可见的,通俗的说就是不能用的.

     

     

     

    文件

    文件是I/O设备逻辑上的概念,他其实就是字节序列,也就是01组成的一些信息.因此所有的I/O设备,包括磁盘,键盘,鼠标,显示器都可以看成是文件.

     

     

    网络

    所有的I/O设备其实都是文件这一概念的具体表现.na,e网络其实也是稳健的一种,因为所到底,他也可以被看做是一系列的字节序列.网络适配器的作用就是给计算输入一堆被传送过来的字节序列,这里面可能包括图片,文字甚至可能是代码等等.

    展开全文
  • 抽象数据类型概念

    千次阅读 2018-12-06 19:10:33
    数据类型与抽象数据类型的异同 首先数据结构定义为一个二元组 Data_Stucture(D,S),即两个集合,D是数据元素的集合,而S是数据元素之间或多个关系的集合 ...抽象数据类型本质上和数据类型是一个概念,但是其特...
  • 关于JAVA中,“什么是抽象概念的简述 Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。 抽象方法 在抽象类中可以包含一般方法和抽象方法。抽象方法的定义与一般方法不同,抽象方法在方法头后直接...
  • AbstractKnowledgeGraph AbstractKnowledgeGraph, a systematic knowledge graph that concentrate on ... 抽象知识图谱,目前规模50万,支持名词性实体、状态性描述、事件性动作进行抽象。目标于抽象知识,包括抽象...
  • 名词

    2011-02-18 17:03:00
    普通名词是一类人或东西或是一个抽象概念名词,如:book,sadness等。普通名词又可分为下面四类:  1)个体名词(Individual Nouns):表示某类人或东西中的个体,如:gun。  2)集体名词...
  • 数据库名词解释&概念

    千次阅读 多人点赞 2019-04-19 19:34:35
    通过对用户需求进行综合,归纳与抽象,形成了一个独立于具体DBMS的概念模型 –逻辑结构分析(E-R图) 逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并将进行优化 –物理结构分析 物理设计是为逻辑...
  • 二、Flink入门--名词概念解释

    千次阅读 2019-05-17 20:09:28
    flink引入了checkpoint barrier的概念来实现全局一致快照,后续章节我们会详细讲解。 2.2 状态维护( state Management) 注册状态 在flink中调用以下方法进行状态注册 val state = getRuntimeContext()....
  • 抽象:注意建模 继承:extends,不单单是为了代码复用。(如果仅为了代码复用,应使用组合),是为了维系整体架构 多态:把子类当做父类使用。设计方法时,形参声明为父类类型,在方法中指针对父类编写功能调用,...
  • 注:本文章从网上摘录,并做了相应的修改。  第一次接触工作流系统,可能会对一些基本的术语和名词有误解。如流程实例,流程模版,流程版本...工作流引擎:抽象的业务流程设计模型,负责业务流程的定义,解释和运转。
  • Data Transfer Object)数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指...
  • 名词 摘录

    2018-06-16 17:12:01
    摘录自 英语语法王名词:概念:名词是表示人、动物、地点、物品以及抽象概念的词。名词的分类:根据意义可以分为专有名词和普通名词专有名词:表示特定的人或事物名称的词。专有名词首字母一定要大写,前面一般...
  • 软件工程常见名词解释&概念

    千次阅读 2019-04-19 19:48:20
    i. 找到所有的对象(实体或者抽象概念) ii. 找到所有的任务/协作 iii. 将任务/协作分配给对象 对象:数据+算法 对象完成自己的职责 对象自己完成不了的通过互相发送消息请求其他对象完成 对象:根据单一职责...
  • 英语之名词规则

    千次阅读 热门讨论 2017-10-26 14:39:23
    名词是表示人,事物,地点或抽象概念的名称的词,有专有名词和普通名词之分,还有可数名词与不可数名词之分. 二.相关知识点精讲  1.名词复数的规则变化 情况 构成方法 读音 例词 一般情况 加 -s
  • 二、概念&名词解释: 谈ADAS/AD之前,首先要将与之相关的各种常见ADAS/AD功能点(features)的缩写和含义贴出来,如下所示: a. 各种智能驾驶功能点的缩写及全称: CC: Cruise Control 定速巡航; ...
  • 专题一:名词

    2020-05-01 19:13:04
    具有抽象概念名词可用来表达具体的人和事,这种情况就是抽象名词具体化。 difficulty困难; ------> a difficulty 一件难事 experience经验; ------> an experience一次经历 failure失败; ------> a ...
  • 抽象数据类型ADT:只关系逻辑结构,无需关系具体实现、存储结构。由数据对象、数据关系、基本操作组成。 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。数据结构=数据元素+数据关系。 数据结构三要素...
  • 名词总结——day1

    2020-08-15 08:58:20
    定义:某些人、事件、物体和抽象概念的名称 种类: 种类 举例 个体名词 man(人)、stamp(灯) 集体名词 family(家)、police(警察)、government(政府) 物质名词 honey(蜂蜜)、steel(钢铁) 抽象名词 ...
  • 2.杨明翰英语教学系列之名词

    千次阅读 2019-10-24 07:00:09
    名词的分类2.1 普通名词(Common Nouns)2.1.1 `可数名词(Countable Nouns)`2.1.1.1 个体名词(Individual Nouns)2.1.1.2 集体名词(Collective Nouns)2.1.2 不可数名词(Uncountable Nouns)2.1.2.1 物质名词(Material ...
  • 抽象是一种概念名词,具体是一种可见可触摸的现实对象。概念越小,则其抽象程度就越大,其外延也越大,反之亦然。简单说,比如“人”比“男人”抽象一点,而“生物”又比“人”更抽象一点,“物质”又比“生物”更...
  • 其中对数据抽象这个概念进行了深入的探讨,清晰地给出了抽象数据类型和对象的定义,并阐述了其区别以及对于实际编程的影响。因此抽空翻译出来供大家学习、参考。原文:http://www.cs.utexas.edu/~wcook/Drafts/2009/...
  • JavaJava名词解释

    2019-10-04 13:45:58
    ​ 最近笔者身边很多刚刚接触Java这门语言的萌新们问了我一些关于名词概念的问题,诸如:“喂喂喂,jdk是什么呀?”、“对了,抽象类是什么意思呢?”等等,确实,java语言中的概念对于初学者(尤其是没有接触过任何...
  • 订单、库存、商品这类的名词都可以称之为模型。 例:订单可能分为实物类订单,服务类订单等,那么这里就提出一个挑战如何进行抽象。一个好的业务模型抽象能使得你的业务模型可复用。 例:商品可以有spu,sku等不同的...
  • 1.名词(noun)

    2018-11-08 16:58:36
     名词是指表示人、事物、地点或抽象概念等的名称词; 2.分类  根据意义分类  1.专有名词  a.表示人,事物,地点,团体或机构的专有名称(第一个字母大写),  包括人名、地名、月份、...
  • 作者 | 章烨明杏仁医生CTO。中老年程序员,关注各种技术和团队管理。...作为动词的抽象就是指一种行为,这种行为的结果,就是作为名词抽象。Wikipedia 上是这么定义抽象的:Conceptual abstraction
  • 利用实例巧妙区分“抽象方法”和“虚方法”!

    千次阅读 多人点赞 2020-07-08 08:39:47
    最近在开发中,get到了虚方法这个名词,由于当时是在抽象类中用到,并且抽象方法和虚方法的使用有那么一丝丝的相近,之前也有了解过虚方法,但是对其概念比较模糊,所以今天在这里记录一下抽象方法和虚方法的区别。...
  • 普通名词是一类人或东西或是一个抽象概念名词,如:book,sadness等。普通名词又可分为四类: 个体名词(Individual Nouns):表示某类人或东西的个体,如:gun。集体名词(Collective Nou
  • C#抽象类和接口

    2013-01-14 21:12:47
     不与具体事物相联系,表达一种抽象概念,仅是作为其派生类的一个基类。主要用来提供多个派生类可共享的基类的公共定义。  以Animal类为例,动物是一个抽象名词,没有具体对象与之对应。所以我们完全可以考虑...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,424
精华内容 14,169
关键字:

抽象概念的名词