抖动是指页面置换过程中出现的频繁缺页现象。
主要是由于有些进程频繁访问的页面数目高于可用的物理页帧数。
解决方法有:
①局部置换策略:就是当缺页率很高的时候为该进程分配若干物理块,当缺页率低的时候适当的减少分配的物理块。
②引入工作集算法:基于局部性原理,工作集使用最近访问过的页面来确定工作集。一般来说只要分配给进程的物理块数大于工作集就可以。
① 数据库定义功能:提供数据描述语言,定义数据库的三级结构及其相互之间的映像,定义数据库的完整性、安全性控制等约束。
② 数据库操纵功能:提供数据库操纵语言,实现对数据库中数据的检索、插入、删除和修改。
③ 数据库保护功能:数据库管理系统提供了数据库恢复、并发控制、数据安全性控制和数据完整性控制4个方面的保护功能
④ 数据库存储管理:把各种DML语句转化为底层的文件系统命令。
⑤ 数据库维护功能:由数据装载程序、备份程序、文件重组程序和性能监控程序等实用程序组成,起着数据库维护的功能。
⑥ 数据字典:存放着对实际数据库各级模式所做的定义。
事务管理四个特性,原子性(Atomicity),一致性(Consistency), 隔离性(Isolation)持久性(Durability)
① 原子性:一个事务中所有操作是一个不可分割的操作序列,要么全部执行,要么都不执行。
② 一致性:一个事务独立执行的结果将保证数据库的一致性,即数据不会因为事务的执行而遭到破坏。
③ 隔离性:在并发事务执行时,系统应该保证结果与事务单独执行时的结果一样。
④ 持久性:一个事务一旦完成全部操作,它对数据库的所有更新应永久地反映在数据库中。即使以后系统发生故障,也应保留这个事务执行的痕迹。
① 地址空间不同:IPv4 中规定 IP 地址长度为 32, 而 IPv6 中 IP 地址的长度为 128
② 路由表大小不同:IPv6 的路由表相比 IPv4 的更小
③ IPv6 的组播支持以及对流的支持要强于 IPv4
④ 安全性不同:IPv6 的安全性更高,在使用 IPv6 的网络时,用户可对网络层的数据进行加密
⑤ 协议扩充不同:IPv6 允许协议进行扩充而 IPv4 不允许。
引入线程之后,线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位。
在引入线程之后,不进进程之间可以并发执行,而且多个线程之间也可以并发执行,提高了系统的吞吐量。
在同一进程中,线程的切换不会引起进程切换。在不同进程中进行线程切换,会引起线程的切换。
进程切换时的开销比线程切换时的开销要大很多。
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等), 某进程内的线程对其他进程不可见。
不能,目的 MAC 地址等于本机 MAC 地址的帧不会被发送到网络
正确实现 ARP 软件都会禁止把同一个 MAC 地址绑定到两个不同的 IP 地址,这使具 有相同 MAC 地址的设备上的用户在会话时都发生时断时续的现象。
ip地址相同无法进行通信
网络地址相同可以进行通信。例如:学校的机房电脑
ip地址 = 网络地址 + 主机地址
ip地址32位, Mac地址48位
可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
可扩展标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。
XML的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。
数组在定义的时候分配一段连续的存储空间,而链表在程序执行过程中动态的分配存储空间,链表的存储空间可以不是连续的。而且链表需要多余的存储空间来存储指针,所以链表的存储密度小于数组的存储密度。
域名系统(服务)协议(Domain Name System) 是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因 特网的电子邮件的发送。位于应用层
48位
MAC地址也成物理地址,是由6个十六进制数标识,高24位是厂商代码,低24位是厂商自行分配的网卡序列号。
由两个指针只想头结点,一个指针每次向后移动一个节点,一个指针一次向后移动两个节点,当后者为空的时候前者到达中间结点。
用例图,用例图是指由参与者(Actor)、 用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。 用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。
HTML(Hyper Text Markup Language)称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。
HTML命令可以说明文字,图形、动画、声音、表格、链接等。
超文本是一种组织信息的方式,将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。
顺序存储结构和链式存储结构。
应用层、传输层、网络层、网络接口层
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
管态是指操作系统在运行系统的管理程序时所处的状态。此状度态下可以执行任何指令,包括特权指令;
目态是指操作系统在运行回系统的应用程序所处的状态。
只允许应用程序访问自己的内存空间;这样能够保证应用程序运行时系统的安全。
关系是一张二维表
空间分配
堆(操作系统):一般由程序员 分配释放,若程序员不释放,程序结束时可能由 OS 回收,分配方式类似于链表。
栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量值等。 操作方式与数据结构中的栈相类似。
缓存方式
堆:使用二级缓存,生命周期与虚拟机的 GC 算法有关(并不是引用为空就立即被 GC),调用速度相对较低。
栈: 使用一级缓存,被调用时通常处于存储空间中,调用后被立即释放。
输入设备:输入数据和程序
存储器:记忆程序和数据
运算器:完成数据加工处理
控制器:控制程序执行
输出设备:输出结果
对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。
网络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属于一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分配两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网中,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位运算后就可以得到网络地址。
地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。
工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行在此包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出表头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到底主机以后,就可以根据端口号找到对应的应用程序了。
UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络的可靠性。TCP协议就诞生了。
UDP是无连接的非可靠传输协议,两个通信实体不需建立连接,提供尽最大努力的交付,传输层向上提供了一条不可靠的逻辑信道,远程主机收到UDP报文后,不需要给出确认,UDP常用于一次性传输较少数据的网络应用,如DNS。
TCP 即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。
简单来说 TCP 就是有确认机制的 UDP 协议,每发出一个数据 包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。
为了保证传输的可靠性,TCP 协议在 UDP 基础之上建立了三次对话的确 认机制,即在正式收发数据前,必须和对方建立可靠的连接。
TCP 数据包和 UDP 一样,都是由首部和数据两部分组成,唯一不同的是,TCP 数据包没有长度限制, 理论上可以无限长,但是为了保证网络的效率,通常 TCP 数据包的长度不会超过 IP 数据包的长度,以确保单个 TCP 数据包不必再分割。
UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同。
TCP协议中包含了专门的传递保证机制,当数据接收方收到传送方传来的信息时,会自动向发送方发出确认信息;发送方只有在接受到该确认信息之后才能继续传送其他信息,否则将一直等待直到收到确认信息为止。
与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从传送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检验或提示。
因此,通常人们把UDP协议称为不可靠的传输协议。
由于 CPU 工作的速度比 RAM 读写速度快,CPU 读写 RAM 时需要花费时间等待 RAM 进行读写,造成 CPU 工作速度下降。为了提高 CPU 读写程序和数据的速度,在 RAM 和 CPU 之间增加了高速缓存部件。Cache 的 特点是:读写速度快、存储容量小、价格高、断电后内容丢失。
(1)连续分配。连续分配方式要求每个文件在磁盘上占有一块连续的块。 支持顺序访问和直接访问。
优点是实现简单、存取速度快。
缺点是文件长度不宜动态增加,因为一个文件末尾后的盘块可能已分配给其他文件,一旦需要增加, 就需要大量移动盘块。此外,反复增删文件后会产生外部碎片,且很难确定一个 文件需要的空间大小,因此只适用于长度固定的文件。
(2)链接分配。链接分配采取离散分配的方式,消除了外部碎片,因此显著提高了磁盘空间的利用率;又 因为根据文件的当前需求为其分配所必需的盘块,当文件动态增长时,可以动态地再为它分配盘块,因此无需事先知道文件的大小。此外,对文件的增、删、改也非常方便。
(3)索引分配。索引分配将每个文件的所有的盘块号都集中放在一 起构成索引表。支持直接访问,没有外部碎片问题。缺点是由于索引块的分配, 增加了系统存储空间的开销
Java 是一门面向对象的解释型编程语言
JavaScript 是基于对象镶嵌于 HTML 文档内的脚本语言。
cache 是解决内存和 cpu 速度不匹配,是内部存储器
虚拟存储器一般指虚拟设备,属于外部存储设备。
覆盖:将用户空间分为固定区和若干覆盖区。将经常活跃的部分放入固定区,其他部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,代替覆盖区中原有的段。
交换:指把处于等待状态的程序,换出到外存,以腾出足够的内存空间,把已具备运行条件的进程,换入内存运行。
虚拟内存:允许将一个作业分多次调入内存。有三种实现方式,请求分页存储管理,请求分段存储管理,请求段页式存储管理。通常需要一定的硬件支持,需要一定容量的内存和外存,页表机制(或段表机制),作为主要的数据结构,中断机构,当用户程序要访问的部分尚未调入内存时,则产生中断,地址变换机构,逻辑地址到物理地址的变换。
① 处理器管理:主要功能有进程控制、进程同步、进程通信、死锁处理、处理机调度等。
② 存储器管理:主要功能有内存分配、地址映射、内存保护与共享和内存扩充
③ 文件管理:文件存储空间的管理、目录管理及文件读写管理和保护
④ 设备管理:缓冲管理、设备分配、设备处理、虚拟设备
① 程序直接控制方式:计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费。
② 中断驱动方式:允许I/O设备铸锻打断CPU的运行并请求服务,从而“解放”CPU使其向I/O控制器发送读命令后可以继续做其他有用的工作。
③ DMA方式:在I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。
④ 通道控制方式:DMA方式是对一块数据块的读写为单位,而通道控制方式可以以一组数据块的读写为单位。
对现实世界抽象层次的不同,数据模型分为有概念模型和结构模型。
又称为假脱机技术,是为了缓和CPU的高速性与I/O设备低速性之间的矛盾,引入了脱机输入/输出技术。
该技术利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上,或者相反。
DDR SDRAM=双倍速率同步动态随机存储器(Synchronous Dynamic Random Access Memory),人们习惯称为 DDR。其数据传输速度为系统时钟频率的两倍,由于速度增加,其传输性能优于传统的 SDRAM。SDRAM 在一个时钟周期内只传输一次数据,它是在时钟上升期进行数据传输;而 DDR 则是一个 时钟周期内可传输两次数据,也就是在时钟的上升期和下降期各传输一次数据
① 时间片用完
② 可抢占系统中,有更高优先级进程进入。
Io 设备:输入输出设备。
Io 接口:主机与被控对象进行信息交换的纽带,主机通过 io 接口与外部设备进行数据交换。
android系统层次结构主要包含4个层次
从上往下依次是:应用程序层(Applications)、应用程序框架层(Application Framework)、系统运行库层(Libraries和Android Runtime)和Linux内核层(Linux Kernel)。
① 应用程序层
Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。
② 应用程序框架层
本层次提供的首先包含了UI程序中所需要的各种控件,该层是Android应用开发的基础,该层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
③ 系统运行库层
本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容大多是使用C++实现的。系统库包括九个子系统,分别是界面管理工具(Surface Management 管理显示子系统)、媒体库、SQLite、OpenGLEState(对3D的支持)、FreeType(位图和矢量字体的功能)、WebKit(网络浏览器的核心)、SGL(2D图像引擎)、SSL(Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持)和C库。Android 运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般Java虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。 二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。
④ Linux内核层
Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
公有继承,私有继承,保护继承
双方在通信的时候,发送方的速率与接收方的速率是不一定相等的,如果发送方的速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里(失序的数据包也会被存放在缓存区里)。如果缓存区满了发送方还是疯狂的发送数据,接收方只能把收到的数据包丢掉,大量的丢包会极大的浪费网络资源,因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。
提高生产率、减少维护代价、提高互操作性、支持快速原型、减少培训开销。
除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。以上就是线性表。
反之,就是非线性表。
线性结构:顺序表、链表、栈、队列、串、链表
非线性结构:树、图
与,或,非(&,|,!)
RISC:精简指令系统计算机
CISC:复杂指令系统计算机
Alpha 测试由用户在开发者的场所进行, 并且在开发者对用户的“指导”下进行测试。
Beta 测试是由软件的最终用户们在一个或多个客户场所进行。
Alpha 测试是在可控环境下进行
beta 测试是在不可控环境下的测试
非对称数字用户线路 == Asymmetric Digital Subscriber Line
高速传输、上网、打电话互不干扰、独享宽带、安全可靠
ICMP 协议是 TCP/IP 协议的一个子协议。用在 IP 主机、路由器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传递用户数据,但是对于用 户数据的传输起着重要的作用。
机群系统是相互连接的多个独立计算机的集合,这些计算机可以是单机或多处理器系统,每个结点都有自己的存储器、I/O设备和操作系统。机群对用户和应用来说是一个单一的系统,它可以提供低价高效的高性能环境和快速可靠的服务。
介质故障是指硬件故障使存储在硬盘上的数据丢失。
恢复方法:
① 在新硬盘上,导入最新的数据库备份文件。
② 根据日志文件,找出从该最新备份后开始,到故障发生时,那些事务已经完成。重做所有已提交的事务。
首次适应算法,最佳适应算法,最坏适应算法,邻近适应算法。
SMTP,POP。
SMTP主要有两个缺点:无认证,无法远程操作信箱。
CSMA , CSMA/CD , ALOHA,CSMA/CA ,令牌协议
CSMA/CA
硬件:网卡,宽带,传输介质(光纤,双绞线)
软件:OS,网卡的驱动程序
通用寄存器,段寄存器,指令指针寄存器,标志寄存器
① 通用寄存器:
数据寄存器:AX,BX,CX,DX(有时这四个16位寄存器也可以当做八个独立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL)
指针寄存器和变址寄存器::SP,BP,DI,SI(SP 和 BP 分别为堆栈指针寄存器和基 址指针寄存器,DI 和 SI 分别为目的变址寄存器和源变址寄存器)
② 段寄存器
DS,ES,SS,CS(DS 为数据段寄存器,ES 为附加段寄存器,SS 为堆栈段 寄存器,CS 为代码段寄存器)
③ 指令指针寄存器和标志寄存器
指令指针寄存器:IP
标志寄存器:FLAGS(16 位标志寄存器,但只用其中的 9 位,即 6 个状态标志位,3 个控制标志位)
软件开发流程及软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结果设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理、报废处理。
动态重定位即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换。
触发器是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊存储过程,是由事件触发的。
①互斥条件:进程对其所要求的资源进行独占性控 制;
②请求保持条件:进程已经保持了至少一个资源,但又提出新的资源申请, 而该资源又得不到满足,于是该进程阻塞,但其原先获得的资源保持不放;
③不可剥夺条件:进程已获得的资源在未使用完之前,不能被剥夺,只能在使用完后 由自己释放;
④环路条件:当发生死锁时,在进程资源有向图中存在环路。
①避免多次锁定。尽量避免同一个线程对多 个 Lock 进行锁定。例如上面的死锁程序,主线程要对 A、B 两个对象的 Lock 进 行锁定,副线程也要对 A、B 两个对象的 Lock 进行锁定,这就埋下了导致死锁 的隐患。
②具有相同的加锁顺序。如果多个线程需要对多个 Lock 进行锁定,则 应该保证它们以相同的顺序请求加锁。比如上面的死锁程序,主线程先对 A 对 象的 Lock 加锁,再对 B 对象的 Lock 加锁;而副线程则先对 B 对象的 Lock 加锁,再对 A 对象的 Lock 加锁。这种加锁顺序很容易形成嵌套锁定,进而导 致死锁。如果让主线程、副线程按照相同的顺序加锁,就可以避免这个问题。
③ 使用定时锁。程序在调用 acquire() 方法加锁时可指定 timeout 参数,该参数 指定超过 timeout 秒后会自动释放对 Lock 的锁定,这样就可以解开死锁了。
④死锁检测。死锁检测是一种依靠算法机制来实现的死锁预防机制,它主要是针 对那些不可能实现按序加锁,也不能使用定时锁的场景的。
虚拟内存是计算机系统内存管理的一种技术。它使 得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际 上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器 上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如 Windows 家族的“虚拟内存”;Linux 的“交换空间”等
引用即对象的别名,传对象的引用,用于把一个对象的地址作为参数传递过去,而不是对象本身。引用传递,避免了一次实参到形参的拷贝,提高了效率。
光盘记录原理是通过激光束在光盘记录表面留下储存信息。
不是,线程增多了会增加线程间切换的代价。
统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
里面有9类图
用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。
磁盘阵列,由许多价格便宜的磁盘组成一个容量巨大 的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
全局变量是整个源程序都有效的变量
局部变量会在其所属的函数或循环结束后消亡。
套接字:(IP 地址:端口号),用于唯一的标识一台主机 上的一个进程(应用),实际上网络通信中的通信端点,每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定,两个应用程序之间的数据传 输要通过套接字完成。生成套接字,主要有 3 个参数:通信的目的 IP 地址、使用的传输 层协议(TCP 或 UDP)和使用的端口号。服务器程序所监听的网络地址和端口号通常是固定不变的,客户端程序得知服务器程序的地址和端口号后就可以向服务器发起连接,在 Java 语言中,使用 Socket 类来创建套接字,使用 Socket 类在两台计算机之间进行通信时,是有主次之分的,一个称为服务器程序,一个 称为客户端程序。在服务器端使用 ServerSocket 类创建套接字,主要是监听指 定的端口,等待客户端的连接;在客户端使用 Socket 类创建套接字,用于连接 服务器端的套接字。TCP 的创建两个套接字(应该说是多个,一个服务端的 SOCKET, 监听本机的某个端口;其余对应每个客户端一个 SOCKET,保存客户端的连接)。 UDP 是无连接的,也就是只需要监听本机端口就可了。在网络应用程序设计时, 由于 TCP/IP 的核心内容被封装在操作系统中,如果应用程序要使用 TCP/IP,可以通过系统提供的 TCP/IP 的编程接口来实现。在 Windows 环境下,网络应用程序编程接口称作 Windows Socket。为了支持用户开发面向应用的通信程序,大部分系统都提供了一组基于 TCP 或者 UDP 的应用程序编程接口(API),该接口 通常以一组函数的形式出现,也称为套接字 Socket。
1.根域名服务器:一个主机发出 DNS 查询请求时,若本地域名服务器无法解析,就首先求助于根域名服务器。根域名服务器共有 13 个,每个都知道所有顶级域名服务器的 IP 地址,它告诉本地服务器下一步应当找哪个顶级域名服务器查询
2.顶级域名服务器:管理在该顶级域名服务器注册的所有二级域名,收到 DNS 请求时,就给出相应的应答(可能是最后的结果(如 x.com 的 IP 地址),也可能是下一步应当查找的域名服务器的 IP 地址)
3.授权域名服务器:负责一个区的域名服务器,授权服务器总能将其管辖的主机名转换为该主机的 IP 地址
4.本地域名服务器
1.递归查询:本地域名服务器只需向根域名服务器查询一次
2.迭代查询:本地域名服务器每次都自己查询。
随机存取存储器,又称作随机存储器,是与 CPU 直接交换数据 的内部存储器,也俗称内存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介
DRAM 一般用作计算机中的主存储器,即内存条。DRAM 只能将 数据保持很短的时间。通过在电容上存储电荷保存数据,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 关机就会丢失数据。电路结构简单,集成度高。
一般用来作为计算机中的高速缓冲存储器,即 CPU 或 GPU 内部 的 Cache。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。然而,当电力供应停止时,SRAM 储存的数据还是会消失速度快, 管子数量多,结构复杂,集成度低。
SRAM 是一种具有静止存取功能的内存,不需要刷新电路即能保存它的内部存储数据,速度快。
DRAM 是动态随机存储器, 只能将数据保存很短时间。
由 VNC server 和 VNC viewer 两部分组成,在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地与安装了服务器端的应用程序(vncserver)的计算机相互连接。 1)VNC 客户端通过浏览器或 VNC Viewer 输入服务器端的主机名或 IP 地址连接至 VNC Server。
2)VNC Server 传送一对话窗口至客户端,要求输入连接密码,以及存取的 VNC Server 显示装置。
3)在客户端输入联机密码后,VNC Server 验证客户端是否具有存取权限。
4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。
5)VNC Server 通过 X Protocol 要求 X Server 将画面显示控制权交由 VNC Server 负责。
6)VNC Server 将来由 X Server 的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。
通过虚拟內存技术实现,通过此技术,系统好像 为用户提供了一个比实际内存大得多的,称为虚拟存储器。基于局部性原理(时 间局部性、空间局部性),将程序装入时,将程序的一部分装入內存,其余部分留在外存,就可以启动程序执行。
计算机病毒,是指编制或者在计算机程序中插入的“破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码”。
病毒分类:
根据病毒存在的媒体,病毒可以划分为网络病毒,文件病毒,引导性病毒。
根据病毒破坏的能力可划分为:
① 无害型:除了传染时减少磁盘的可用空间外,对系统没有其他影响
② 无危险型:这类病毒仅仅是减少内存、显示图像、发出声音及同类音响。
③ 危险型:这类病毒在计算机系统操作中造成严重的错误。
④ 非常危险型:这类病毒删除程序、破坏数据、清除系统内存区和操作系统中重要的信息。
宏病毒、CIH病毒、蠕虫病毒、木马病毒
① 宏病毒:专门针对特定的应用软件,可感染依附于某些应用软件内的宏指令,他很容易通过电子邮件附件、文件下载和群组软件等多种方式进行传播如 Microsoft Word 和 Excel。
宏病毒的传播方式通常如下:字处理程序 word 在打 开一个带宏病毒的文档或模板时,激活了病毒宏,病毒宏将自身复制至 word 的通用(Normal)模板中,以后在打开或关闭文件时病毒宏就会把病毒复制到该文件中。
造成危害:文档无法正常使用。
② 蠕虫病毒:蠕虫病毒是无须计算机使用者干预即可运行的独立程序,它通过不停的获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。蠕虫病毒入侵并完全控制一台计算机之后,就会把这台机器作为宿主,进而扫描并感染其他计算机。当这些新的被蠕虫入侵的计算机被控制之后,蠕虫会以这些计算机为宿主继续扫描并感染其他计算机,这种行为会一直延续下去。
蠕虫使用这种递归的方法进行传播,按照指数增长的规律分布自己,进而及时控制越来越多的计算机。
③ CIH 病毒:CIH 属恶性病毒,当其发作条件成熟时,其将破坏硬盘数据,同时有可能修改 BIOS 程序,使得主机无法启动
1、以 2048 个扇区为单位,从硬盘主引导区开始依次往硬盘中写入垃圾数据,直到硬盘数据被全部破坏为止。最坏的情况下硬盘所有数据(含全部逻辑盘数据)均被破坏,如果重要信息没有备份, 那就只有哭了!
2、某些主板上的 Flash Rom 中的 BIOS 信息将被清除。
④ 木马病毒:木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击 Dos 等特殊功能的后门程序(后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。)。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。
完整的木马程序一般由两部分组成:一个是服务器端.一个是控制器端。“中了木马”就是指安装了木马的服务器端程序,若你的电脑被安装了服务器端程序, 则拥有相应客户端的人就可以通过网络控制你的电脑。
当价格不变时,集成电路上可容纳的元器件的数目,约每隔 18 个月便会增加一倍,性能也将提升一倍。这一定律揭示了信息技术进步 的速度
随着集成电路芯片性能的大幅度提高,芯片生产厂 的成本也在提高。制造芯片的成本平均每 4 年翻一番。他的这一说法被人称为摩 尔第二定律 。
中国 IT 专业媒体上出现了“新摩尔定律”的提法,指的是中国 Internet 联网主机数和上网用户人数的递增速度,大约每半年就翻一 番。而且专家们预言,这一趋势在未来若干年内仍将保持下去。
为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。
主要内容有: 估算软件规模,工作量估算,进度计划,人员组织,质量保证,软件配置管理, 能力成熟度模型。
1.切换虚拟地址空间(切换页目录以使用新的地址 空间)
2.切换 CPU 上下文 3.切换内核栈。
1.切换 CPU 上下文
2.切换内核栈。
是因为进程切换时要切页表,而且往往伴道随着页调度,因为进程的数据段代码段要换出去,以便把将要执行的进程 的内容换进来。
相同点:&和&&都可以用作逻辑与的运算符,表示逻辑 与(and)。
不同点:
(1)&&具有短路的功能,而&不具备短路功能。&&运算符 第一个表达式为 false 时,则结果为 false,不再计算第二个表达式。而&不管 前面条件是否正确,后面都执行
(2)&还可以用作位运算符,当&操作符两边的 表达式不是 boolean 类型时,&表示按位与操作,我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的最低 4 个 bit 位,例如:0x31 & 0x0f 的结果为 0x01。
把源程序的执行过程严格地分成两大步:编译和运行。
由编译程序将源代码一次性编译成目标程序,再由机器运行目标程序。编译方式即先把源程序全部翻译成目标代码,然后再运行此目标代码,获执行结果。
由解释器根据输入的数据当场执行而不生成任何目标程序。 解释执行程序是高级语言翻译程序的一种,它将源语言(如 VASIC)书写的源程序作为输入,解释一句后就提交给计算机执行一句,并不生成目标程序。 这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令 或者语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行 且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的 确很方便,很适合于一些小型机的计算问题。
编译执行的语言因为要直接同 CPU 的指令集打交道,具有很强的指令依赖性和系统依赖性,兼容性差。
解释执行的语言只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。解释执行每次都要经过解释过程, 在很多情况下都是相当于每次都在做重复功,这样运行的效率比较低,而编译执行只需要编译一次,以后再运行就无需编译,因此效率高。
通用串行总线(Universal Serial Bus),是一个外部总线标准, 是一种输入输出接口的技术规范,规范电脑与外部设备的连接和通讯。
它只有 4 根线,两根电源,两根差分信号线,故信号是串行(每次传输一个数据位)传输的。
黑线:gnd ;红线:vcc ;绿线:data+ ;白线:data-
大数据是通过传统数据库技术和数据处理工具不能 处理的庞大而复杂的数据集合,具有规模大(volume)、速度快(velocity)、 类型多(variety)、价值(value)四大特征。
是用于传送信息的公共途径。总线可以分为数据总线 DB(Data Bus)、地址总线 AB(Address Bus)和控制总线 CB(Control Bus)
分页(英语:Paging),是一种操作系统里存储器管 理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系 统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。 当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数 据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持 文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
虚拟网技术,防火墙技术,病毒防护技术,入侵检测技术,安全扫描技术,认证和数字签名技术,VPN,应用系统安全技术。
1、B/S 架构是针对 C/S 架构缺点进行 改进后提出的网络结构模式。 B/S 结构属于 C/S 结构,是一种特殊的 C/S,因为 浏览器只是特殊的客户端。
2、C/S 可以使用任何通信协议,而 B/S 架构规定必 须实现 HTTP 协议。
即载波侦听多路访问/冲突检测,是广播型信道中采用一 种随机访问技术的竞争型访问方法,具有多目标地址的特点。它处于一种总线型 局域网结构,其物理拓扑结构正逐步向星型发展。CSMA/CD 采用分布式控制方法, 所有结点之间不存在控制与被控制的关系。
滑动窗口机制、慢启动机制、拥塞避免机制、 快速重传与恢复。
使用同步代码块、使用同步方法、使用互 斥锁 ReetrantLock(更灵活的代码控制)
对于操作系统而言,文件来操作的最高级别的目的,就是对于文件的独享权。 没有打开文件之前,文件只是存在于硬盘上的数据集合。 当进行打开文件操作时, 操作系统会建立文件登记表中记录该文件处于打开状态,除了申请进行打开文件操作的进程,其他程序不能对文件进行访问和写入。 同理,进行关闭文件操作时,操作系统会在文件登记表中清除该文件的打开状态, 此时,其他的程序,才能获得文件的完全控制权。
主存用动态是因为价格低, 容量大,体积小。
缓存需要的速度快,而静态的 RAM 比动态的快,读写速度快。
网络地址转换协议简称NAI ,把局域网地址转换成公网地址,或者内网地址转换成内网地址。
瀑布模型、 V 过程模型、 原型实现模型、 快速应用开发(RAD)、 增量模型 、螺旋模型、 极限编程(XP)
批处理系统(MVX、DOS/VSE)
分时系统(WINDOWS、UNIX、XENIX、MAX OS)
实时系统(iEMX、VRTX、RTOS、RT Linux)
网络操作系统(Netware、Windows NT、OS/2warp)
分布式系统(Amoeba)
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网, 以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 IP 地址一起使用。子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。子网掩码是一个 32 位地址,用于屏蔽 IP 地址的一部分以区别网络标识和主机标识,并说 明该 IP 地址是在局域网上,还是在远程网上。
ASCII:(American Standard Code for Information Interchange, 美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 代英语和其他西 欧语言。它是现今最通用的单字节编码系统。
计算机系统中除主机外的其他设备。是计算机与外界进行通信的工具。包括输入和输出设备、外存储器、模数转换器、数模 转换器、外围处理机等。 - 例如打印机、磁盘驱动器或键盘。
1.接口里面只能包含抽象方法、静态方法和默认方法,不能为普通方法提供实现; 抽象 类则可以包含普通方法;
2.接口里只能定义静态常量,不能定义普通变量;抽象类里都可以;
3.接口不能包含构造器,抽象类可以;
4.一个类只能有一个直接父类,一个类可以直接实现多个接口;
重写:在子类中把父类本身有的方法重新写一遍,返回类型必须相同;
重载:在一个类中,同名方法如果有不同的参数列表,则视为重载,返回类型没有要求