01 2016 档案
摘要:前面阐述了操作系统具有进程管理、内存管理、外存管理三大核心功能,但是计算机归根是为人类服务的,这就要求计算机必须提供某种机制使得人们可以向计算机发出命令或操纵计算机。也就是说计算机与人之间必须存在某种沟通的机制,这种沟通的机制就是计算机的输入输出机制。输入输出的存在才使得计算机的存在有了意义,就像一个人,如果没有输入输出,那么就不能与外部世界打交道。
阅读全文
摘要:操作系统是一个魔术师,其提供给用户的就是各种幻想:抽象。进程抽象的是CPU,虚拟内存抽象的是内存,对于磁盘来说,操作系统提供给用户的帮助就是在磁盘外面包裹一层容易使用的抽象,用户直接与这层抽象打交道,而无需了解磁盘的技术细节。在操作系统中,这层为磁盘提供的抽象就是:文件系统。
阅读全文
摘要:计算机是处理数据的机器,而数据就需要有地方存放。在计算机中,可供数据存放的地方并不太多,除了内存之外,最主要的存储数据的媒介就是磁盘。对于大多数计算机领域的人来说,磁盘通常被看做是一种外部设备。可是,对于现代操作系统来说,磁盘是不可或缺的。虽然早期的操作系统可以基于磁带,但由于操作系统复杂性和性能的不断提升,用磁带作为操作系统的载体已经不合时宜,取而代之的是磁盘。由于操作系统需要存放在磁盘上,且操作系统内的文件系统也是基于磁盘,所以,从某种程度来说,磁盘是操作系统不可分割的一部分,理解磁盘将对理解操作系统的原理具有重要的意义。
阅读全文
摘要:最近在京东上购买了《京东技术解密》这本书,抱着看看京东为何从.NET转向Java的目的,像当初看《淘宝技术这十年》一样看完了这本。这不是一本传统意义上的技术书,而是讲述了京东技术和成长的故事。10年时间,京东在技术团队的支撑下,从一个简陋的网站和混乱的库房,建立起出色的团队,打造了财务、物流和技术三大核心系统,迅速崛起为国内一流的电商平台。同时,京东研发体系也坚持着十年如一日的专注,愿景称为“中国最具影响力的技术团队”。
阅读全文
摘要:分页内存管理存在页表大、速度慢、共享困难等缺陷,特别是一个进程只能占有一个虚拟地址空间。于是,新的管理模式—分段管理系统横空出世,分段管理就是将一个程序按照逻辑单元分成多个程序段,每一个段使用自己单独的虚地址空间。这样,一个段占用一个虚拟地址空间,就不会再发生空间增长时碰撞到另一个段的问题,从而避免因空间不够而造成编译失败的情况。而段页式管理是将程序分为多个逻辑段,在每个段里面又进行分页,即将分段和分页组合起来使用。
阅读全文
摘要:AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。本篇会简单介绍一下AngularJS,并会实现第一个AngularJS程序,体验双向绑定的乐趣。最后,实现一个任务清单程序,学习模块化思想的实践。
阅读全文
摘要:在上一篇介绍的几种多道编程的内存管理模式中,以交换内存管理最为灵活和先进。但是这种策略也存在很多重大问题,而其中最重要的两个问题就是空间浪费和程序大小受限。那么有什么办法可以解决交换内存存在的这些问题呢?答案是分页,它是我们解决交换缺陷的“不二法门”。分页系统的核心在于:将虚拟内存空间和物理内存空间皆划分为大小相同的页面,如4KB、8KB或16KB等,并以页面作为内存空间的最小分配单位,一个程序的一个页面可以存放在任意一个物理页面里。
阅读全文
摘要:转眼之间,2015就成为了过去,园子里的园友们纷纷发表了自己的年终总结以及新年规划。当时钟转向12点,微信上各种红包如雨后春笋般袭来,我一个一个地点,也将收到的红包凑成一个个红包又发了出去,就这样折腾到现在12:30,准备沉下心来总结一下我这一年来的得失,规划一下2016。
阅读全文