逻辑结构

操作系统——文件管理

此生再无相见时 提交于 2019-12-01 08:55:34
目录 一、文件系统 1.1文件与文件系统 1.2文件的逻辑结构 1.3文件目录 1.4文件共享 1.5文件保护 二、文件系统实现 2.1文件系统层次结构 2.2目录实现 2.3文件实现 三、磁盘组织与管理 3.1磁盘的结构 3.2磁盘调度算法 3.3磁盘的管理 一、文件系统 1.1文件与文件系统 1、文件 1)数据项 在文件系统中,数据项是最低级的数据组织形式。分为两种类型: 基本数据项。描述一个对象某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称字段。除了数据名还有数据类型 组合数据项。由若干基本数据项组成 数据项的名字和类型共同定义了数据项的“型”,表征一个实体在数据项上的数据称为“值” 2)记录 记录是一组相关数据项的集合,用于描述一个对象在某方面的属性 一个记录应包含哪些数据项取决于需要描述对象的哪个方面 唯一标识一个记录的一个或多个数据项称为 关键字 3)文件 文件是具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件 有结构文件由若干个相关记录组成,无结构文件看成是一个字符流 文件是文件系统中最大的数据单位 文件属性包括:文件类型、文件长度、文件的物理地址、文件的建立时间 2、文件系统 1)定义 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法;也指用于存储文件的磁盘或分区,或文件系统种类

THE MINTO PYRAMID PRINCIPLE

旧时模样 提交于 2019-12-01 07:26:46
金字塔原理: (重点突出,逻辑清晰、层次分明,简单易懂的思考方式、沟通方式、规范的动作。) 结构:结论先行,以上统下,归类分组,逻辑递进。先重要后次要,先总结后具体,先框架后细节,先结论后原因,先结果后过程,先论点后论述。 做法:自上而下表达,自上而下思考、纵向总结,横向归类分组,序言讲故事,标题提炼思想精华。 本书大框架:【1、2、3、4.】:1、表达的逻辑 。 2、思考的逻辑。 3、解决问题的逻辑。 4、演示的逻辑。 【1】、表达的逻辑 1)、结构+横向组织+纵向总结 蛋奶产品 【中心思想】 | ———————————————— | | | | 牛奶 鸡蛋 咸鸭蛋 酸奶 【子结构】 2)自上而下思考,总结概括。 组织思想 的逻辑顺序: 1、演绎顺序:大前提、小前提、结论。 2、时间(步骤)顺序:第一、第二、第三 3、结构(空间)顺序:北京、上海、广州。 4、程度(重要性)顺序:最重要、次重要,等等 3)梳理思想过程 1、主题与子主题之间的纵向关系。 2、各子主题之间的横向关系。 3、序言的叙述方式。 4)、序言 呈现方式:背景---冲突----疑问-----回答 例子: 来源: https://www.cnblogs.com/1314520xh/p/11668811.html

[转贴] 游戏服务器架构一

人盡茶涼 提交于 2019-11-30 14:19:03
来自: http://www.libing.net.cn/read.php/1724.htm 这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了: http://bbs.gameres.com/showthread.asp?threadid=93775 作者:qinglan 有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。   另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料的整理合集。在平时的开发中我也搜索过相关的中文网页,很少有讲游戏服务器相关技术的,大家的讨论主要还是集中在3D相关技术,所以也希望我将开始的这几篇文章能够起到抛砖引玉的作用,潜水的兄弟们也都上来透透气。   要描述一项技术或是一个行业,一般都会从其最古老的历史开始说起,我本也想按着这个套路走,无奈本人乃一八零后小辈,没有经历过那些苦涩的却令人羡慕的单机游戏开发,也没有响当当的拿的出手的优秀作品,所以也就只能就我所了解的一些技术做些简单的描述。一来算是敦促自己对知识做个梳理,二来与大家探讨的过程也能够找到我之前学习的不足和理解上的错误,最后呢,有可能的话也跟业内的同行们混个脸熟

常用逻辑结构

▼魔方 西西 提交于 2019-11-30 13:04:55
在工作和生活中,沟通是重要的一环。想把事情叙述清楚有几个常用的逻辑结构。主要分为四种类型:传统型、流程型、情境型、要素型。 传统型 传统型是知识点按照常用逻辑,抽丝剥茧般的展示出来。又有三种主要的结构。 流程型 知识点按照完成一项任务的顺序来呈现。 情境型 知识点按照一项能力在不同情境中的应用来呈现。 要素型 知识点按照一个问题在不同方面上的体现来呈现。 思考 Q: 《面试专家职位面试官会问什么 》这篇文章使用了什么逻辑结构? A: 要素型结构。 Q: 《代码荣辱观-以运用风格为荣,以随意编码为耻》 这篇文章使用了什么逻辑结构? A:传统型结构中的:是为什么->为什么->怎么做 Q: 《平时代码中用不到设计模式? Are you kidding me?》 这篇文章使用了什么逻辑结构? A: 情景型结构 Q: 本文使用了什么逻辑结构? A: 传统型结构中的:概念->原理->应用 来源: https://www.cnblogs.com/xiexj/p/11580137.html

.NET Core采用的全新配置系统[2]: 配置模型设计详解

萝らか妹 提交于 2019-11-30 12:57:31
在《 .NET Core采用的全新配置系统[1]: 读取配置数据 》中,我们通过实例的方式演示了几种典型的配置读取方式,其主要目的在于使读者朋友们从编程的角度对.NET Core的这个全新的配置系统具有一个大体上的认识,接下来我们从设计的维度来重写认识它。通过上面演示的实例我们知道,配置的编程模型涉及到三个核心对象,它们分别是 Configuration 、 ConfigurationSource 和 ConfigurationBuilder 。如果从设计层面来审视这个配置系统,还缺少另一个名为 ConfigurationProvider 的核心对象,总得来说,.NET Core的这个配置模型由这四个核心对象组成。要彻底了解这四个核心对象之间的关系,我们先得来聊聊配置的几种数据结构。 [ 本文已经同步到《 ASP.NET Core框架揭秘 》之中] 目录 一、配置数据结构及其转换 二、Configuration 三、ConfigurationProvider 四、ConfigurationSource 五、ConfigurationBuilder 一、配置数据结构及其转换 相同的数据具有不同的表现和承载方式,同时体现出不同的数据结构。对于配置来说,它在被消费过程中是以Configuration对象的形式来体现的,该对象在逻辑上具有一个树形化层次结构,所以我们可以称之为配置树

《软件工程导论》课后习题答案

六眼飞鱼酱① 提交于 2019-11-30 09:47:29
来源:https://blog.csdn.net/Rong_Toa/article/details/80771976 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训

Linux 系统结构详解

拟墨画扇 提交于 2019-11-30 01:56:00
Linux系统一般有4个主要部分: 内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 1、linux内核 内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。如图: 系统调用接口:SCI 层提供了某些机制执行从用户空间到内核的函数调用。这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。 2、内存管理 对任何一台计算机而言,其内存以及其它资源都是有限的。为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。 不过内存管理要管理的可不止 4KB 缓冲区。Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。这种内存管理模式使用

第八周学习总结

寵の児 提交于 2019-11-29 03:30:26
这周是暑期的最后一周,这周主要是pta作业的收尾工作,因为大多数题目是对字符串的处理,所以主要是学习了一些字符串的处理,比如处理位数过大的数字要进行加减乘除可以运用逻辑的方法,然后可以利用数组从而写出程序。然后这周还学习了一点算法,算是对数据结构有了一定认知,因为写了一个超时的程序,所以一定是算法有些繁琐,主要的原因就是递归的次数太多了,所以导致超时了,然后优化了一遍。然后对于uml还是不太理解,所以为了开学的测试还是要多看看。 来源: https://www.cnblogs.com/ljpljm/p/11443576.html

数据库逻辑结构单元

随声附和 提交于 2019-11-28 22:05:23
数据库逻辑结构单元 0:数据库逻辑结构包括表空间,段,区,数据块   1、数据库在逻辑上是由多个表间组成的,表空间中存储的对象是段;   2、段,由区组成,比如数据段,索引段,和undo段;   3、区,是磁盘分配的最小单位,是物理上连续的块,一个extent的大小是1M,由64个页组成;   4、块(页),在MySQL中块就是页,是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位,一个page的大小是16K(默认,一般也不会更改),innodb_page_size,其值应设置为操作系统块大小的整数倍。 1、表空间(tablespace)   表空间是数据库最大的逻辑结构,一个数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。   1、一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间;   2、一个表空间就是一片磁盘区域,由一个或者多个磁盘文件组成,一个表空间可以容纳许多表、索引等。 2、段(segment)   一个表就是一个段,段可以分成:数据段、索引段、回滚段   1、数据段用来存储用户的数据,每个表都有一个对应的回滚段,其名称和数据表的名字相同;   2、索引段用来存储系统、用户的索引信息;   3、回滚段用来存储用户数据修改前的值,回退段与事务是一对多的关系,一个事务只能使用一个回退段

【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器

人走茶凉 提交于 2019-11-28 05:37:47
【摘要】 timers模块部分源码和定时器原理 示例代码托管在: http://www.github.com/dashnowords/blogs 一.概述 Timer 模块相关的逻辑较为复杂,不仅包含JavaScript层的实现,也包括C++编写的与底层 libuv 协作的代码,想要完整地看明白是比较困难的,本章仅以 setTimeout 这个API的实现机制为主线,讲述源码中的JavaScript相关的实现部分,这部分只需要一些数据结构的基本知识就可以理解。 二. 数据结构 setTimeout 这个API的实现基于两类基本数据结构,我们先来复习一下相关的特点。对数据结构知识比较陌生的小伙伴可以参考 【野生前端的数据结构基础练习】 系列博文自行学习,所有的章节都有示例代码。 2.1 链表 链表是一种物理存储单元上非连续的存储结构,存储元素的逻辑顺序是由链表中的指针链接次序来决定的。每一个节点包含一个存放数据的数据域和存放下一个节点的指针域(双向链表中指针数量为2)。链表在插入元素时的时间复杂度为 O(1) (因为只影响插入点前后的节点,无论链表有多大),但是由于空间不连续的特点,访问一个未排序链表的指定节点时就需要逐个对比,时间复杂度为 O(n) ,比数组结构就要慢一些。链表结构也可以根据指针特点分为 单向链表 , 双向链表 和 循环链表 , Timer 模块中使用的链表结构就是