My Github
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 31 下一页
摘要: 计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的人来说,磁盘通常被看做是一种外部设备。可是,对于现代操作系统来说,磁盘是不可或缺的。虽然早期的操作系统可以基于磁带,但由于操作系统复杂性和性能的不断提升,用磁带作为操作系统的载体已经不合时宜,取而代之的是磁盘。由于操作系统需要存放在磁盘上,且操作系统内的文件系统也是基于磁盘,所以,从某种程度来说,磁盘是操作系统不可分割的一部分,理解磁盘将对理解操作系统的原理具有重要的意义。 阅读全文
posted @ 2016-01-17 02:00 EdisonZhou 阅读(5002) 评论(1) 推荐(3)
摘要: 最近在京东上购买了《京东技术解密》这本书,抱着看看京东为何从.NET转向Java的目的,像当初看《淘宝技术这十年》一样看完了这本。这不是一本传统意义上的技术书,而是讲述了京东技术和成长的故事。10年时间,京东在技术团队的支撑下,从一个简陋的网站和混乱的库房,建立起出色的团队,打造了财务、物流和技术三大核心系统,迅速崛起为国内一流的电商平台。同时,京东研发体系也坚持着十年如一日的专注,愿景称为“中国最具影响力的技术团队”。 阅读全文
posted @ 2016-01-10 01:57 EdisonZhou 阅读(8510) 评论(5) 推荐(6)
摘要: 分页内存管理存在页表大、速度慢、共享困难等缺陷,特别是一个进程只能占有一个虚拟地址空间。于是,新的管理模式—分段管理系统横空出世,分段管理就是将一个程序按照逻辑单元分成多个程序段,每一个段使用自己单独的虚地址空间。这样,一个段占用一个虚拟地址空间,就不会再发生空间增长时碰撞到另一个段的问题,从而避免因空间不够而造成编译失败的情况。而段页式管理是将程序分为多个逻辑段,在每个段里面又进行分页,即将分段和分页组合起来使用。 阅读全文
posted @ 2016-01-09 00:29 EdisonZhou 阅读(7199) 评论(1) 推荐(5)
摘要: AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。本篇会简单介绍一下AngularJS,并会实现第一个AngularJS程序,体验双向绑定的乐趣。最后,实现一个任务清单程序,学习模块化思想的实践。 阅读全文
posted @ 2016-01-05 01:20 EdisonZhou 阅读(6004) 评论(4) 推荐(6)
摘要: 在上一篇介绍的几种多道编程的内存管理模式中,以交换内存管理最为灵活和先进。但是这种策略也存在很多重大问题,而其中最重要的两个问题就是空间浪费和程序大小受限。那么有什么办法可以解决交换内存存在的这些问题呢?答案是分页,它是我们解决交换缺陷的“不二法门”。分页系统的核心在于:将虚拟内存空间和物理内存空间皆划分为大小相同的页面,如4KB、8KB或16KB等,并以页面作为内存空间的最小分配单位,一个程序的一个页面可以存放在任意一个物理页面里。 阅读全文
posted @ 2016-01-02 01:35 EdisonZhou 阅读(34179) 评论(0) 推荐(13)
摘要: 转眼之间,2015就成为了过去,园子里的园友们纷纷发表了自己的年终总结以及新年规划。当时钟转向12点,微信上各种红包如雨后春笋般袭来,我一个一个地点,也将收到的红包凑成一个个红包又发了出去,就这样折腾到现在12:30,准备沉下心来总结一下我这一年来的得失,规划一下2016。 阅读全文
posted @ 2016-01-01 02:46 EdisonZhou 阅读(2730) 评论(4) 推荐(8)
摘要: 操作系统的两个角色分别是魔术师和管理者,在管理者这个角色中,除了CPU之外,内存是操作系统要管理的另外一个重要资源。内存管理需要达到两个目标:一是地址保护,即一个程序不能访问另一个程序的地址空间。二是地址独立,即程序发出的地址应该与物理主存地址无关。这两个目标就是衡量一个内存管理系统是否完善的标准,它是所有内存管理系统必须提供的基本抽象。 阅读全文
posted @ 2015-12-31 00:17 EdisonZhou 阅读(6528) 评论(0) 推荐(8)
摘要: 自从上世纪90年代初期,Scrum方法就已经应用于开发复杂的产品。本指南介绍了如何应用Scrum构建产品。Scrum不是一种过程,也不是一项构建产品的技术,而是一个框架,在这个框架里可以应用各种过程和技术。Scrum的作用就是让开发实践方法的相对功效显现出来以便随时改进,同时也为开发复杂产品提供了框架。 阅读全文
posted @ 2015-12-23 00:59 EdisonZhou 阅读(3026) 评论(0) 推荐(0)
摘要: 我们都见过交通阻塞,一大堆汽车因为争夺行路权,互不相让而造成阻塞,又或者因为车辆发生故障抛锚或两辆车相撞而造成道路阻塞。在这种情况下,所有的车都停下来,谁也无法前行,这就是死锁。死锁的发生,归根结底是因为对资源的竞争。在一个系统里存在多个线程,而这些线程共享该计算机系统里的资源。因为资源竞争而造成系统无法继续推进就难以避免了。本篇就来了解一下什么是死锁,如何应对死锁。 阅读全文
posted @ 2015-12-22 00:11 EdisonZhou 阅读(5755) 评论(3) 推荐(4)
摘要: 我们都知道,进程是运转中的程序,是为了在CPU上实现多道编程而发明的一个概念。但是进程在一个时间只能干一件事情,如果想要同时干两件或者多件事情,例如同时看两场电影,我们自然会想到传说中的分身术,就像孙悟空那样可以变出多个真身。虽然我们再现实中无法分身,但进程却可以办到,办法就是线程。线程就是我们为了让一个进程能够同时干多件事情而发明的“分身术”。 阅读全文
posted @ 2015-12-14 00:34 EdisonZhou 阅读(7232) 评论(1) 推荐(16)
摘要: 本篇是我学习反射的一个应用小场景而做的学习笔记,主要是一个小的总结,并对各个步骤的记录,以便将来回顾。实现插件机制的原理很简单:一:定义插件接口;二:实现插件接口并建立不同工项目,使其在生成时生成不同的DLL;三:主程序运行时根据接口名利用反射对插件目录的DLL进行加载,加载完成后便可以使用插件接口定义的方法或属性; 阅读全文
posted @ 2015-12-08 01:28 EdisonZhou 阅读(4143) 评论(5) 推荐(14)
摘要: 进程作为人类的发明,自然也免不了脱离人类的习性,也有通信的需求。如果进程之间不进行任何通信,那么进程所能完成的任务就要大打折扣。人类的通信方式无外乎对白(通过声音沟通)、打手势、写信、发电报、拥抱等方法。同理,进程也可以通过同样的方式来进行通信。本篇我们就来看看进程的这些交互方式。 阅读全文
posted @ 2015-12-06 01:37 EdisonZhou 阅读(5358) 评论(3) 推荐(11)
摘要: 在多进程并发的环境里,虽然从概念上看,有多个进程在同时执行,但在单个CPU下,在任何时刻只能有一个进程处于执行状态,而其他进程则处于非执行状态。那么问题来了,我们是如何确定在任意时刻到底由哪个进程执行,哪些不执行呢?这就涉及到进程管理的一个重要组成部分:进程调度,跟随本篇来一起复习下进程调度吧! 阅读全文
posted @ 2015-12-05 00:23 EdisonZhou 阅读(7814) 评论(1) 推荐(12)
摘要: 进程管理、内存管理和文件管理是操作系统的三大核心功能,那么什么是进程呢?顾名思义,进程就是进展中的程序,或者说进程是执行中的程序。当一个程序被加载到内存之后就变为了进程。因此,我们可以得到:进程=程序+执行。本篇将会对进程、进程模型、进程状态以及进程的缺陷等进行学习,为后续学习进程调度与进程通信打下坚实基础。 阅读全文
posted @ 2015-12-04 00:11 EdisonZhou 阅读(7502) 评论(0) 推荐(12)
摘要: 上一篇中我们了解了操作系统在计算机系统中扮演着魔术师和管理者的角色,它是一种软件,运行在硬件智商,又为更高层的应用软件提供服务。因此,对底层硬件的了解将帮助我们更好地掌握操作系统。那么,就跟随本篇一起了解下计算机硬件基本知识、内核态与用户态、操作系统结构、系统调用等基本概念吧,有了这些基础,我们再去学习进程管理会有更好的基础。 阅读全文
posted @ 2015-11-28 01:36 EdisonZhou 阅读(14967) 评论(4) 推荐(27)
摘要: 操作系统原理是大学计算机专业最为重要的一门专业基础课程之一,对于操作系统核心原理的理解对于一个合格的程序员来说十分重要,于是我继续我的“三大原理,两个协议,一种结构”复习,三大原理中操作系统原理首当其冲,这里主要依靠阅读《操作系统之哲学原理》来进行复习,将其中重要的部分记录下来,与各位分享。当然,更推荐大家去读读这本书,相信都会有一定收获。 阅读全文
posted @ 2015-11-26 00:09 EdisonZhou 阅读(15626) 评论(7) 推荐(34)
摘要: 在函数对象中,将局部变量这一环境封闭起来的结构就被成为闭包。与闭包相关的两个要点分别是:作用域(Scope)和生存周期(Extent),作用域值得是变量的有效范围,即某个变量可以被访问的范围。而生存周期就是变量的寿命,它值得是一个变量可以在多长的周期范围内存在并能够被访问。闭包是优雅的,带来代码格局的函数式体验;但是,闭包也是复杂的,带来潜在的某些问题。TA就像一把双刃剑,用好闭包的关键,在于深入地理解闭包,即在于挥剑人自己。 阅读全文
posted @ 2015-10-16 01:15 EdisonZhou 阅读(2785) 评论(5) 推荐(8)
摘要: dotNetCLR最终执行的只有本地的Native Code,所以JIT编译的作用在运行时将IL代码解析为机器码执行。首先,IL是基于栈执行的,执行方法调用时,方法参数、局部变量还有返回值等被分配在栈上,并执行其调用过程,既然是关注JIT编译,我们自然来关注一下方法的执行,因为JIT编译时以执行方法调用而触发的。 阅读全文
posted @ 2015-10-10 00:59 EdisonZhou 阅读(2703) 评论(3) 推荐(4)
摘要: 在现实世界中,无论内存容量有多大,总归是有限的。实际上,随着内存容量的增加,软件的内存开销也在以同样的速率增加。因此,计算机系统会通过“双重”幻觉,让我们以为内存是无限的。第一重是垃圾回收(GC)机制,第二重则是操作系统提供的虚拟内存。本篇笔记讲会介绍这两种幻觉,跟随Ruby之父松本行弘来探寻内存管理的世界。 阅读全文
posted @ 2015-10-07 17:31 EdisonZhou 阅读(2840) 评论(1) 推荐(7)
摘要: Dapper是一个开源轻的量级的ORM,只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器。与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能。 阅读全文
posted @ 2015-10-04 00:50 EdisonZhou 阅读(7284) 评论(2) 推荐(2)
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 31 下一页