操作系统-进程管理
进程程序是一个指令序列
早期计算机只支持单道程序,一道时间段仅有一个程序执行内存里也只有一个固定的程序段和数据段
多道程序技术引入后,内存里就有多个程序段数据段了
内存中同时放入多道程序,各个程序的代码、运算数据存放的位置不同。操作系统要怎么才能找到各程序的存放位置呢?因此系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB) ,用来描述进程的各种信息(如程序代码存放位置)
程序段、数据段、PCB三部分组成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上是创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB。
注意: PCB是进程存在的唯一标志!
引入进程实体的概念后,可把进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB组成:
如何管理PCB?
链接方式:按照进程状态(执行,阻塞,就绪)将PCB分为多个队列,操作系统持有指向各个队列的指针
索引方式:根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引表的指针
进程状态运行态(Running) 占有CPU,并在 ...
计算机网络自顶向下第三章运输层
课后习题R3.假设 A 到 B 的 TCP 报文段具有源端口号 X 和目的端口号 Y,则对于从 B 到 A 的报文段源端口号和目的端口号分别是多少?答: 源端口号 Y 和目的端口号 X。R4.描述应用程序开发者为什么可能选择在 UDP 上运行应用程序而不是在 TCP 上运行的原因。答: 应用程序开发人员可能不希望其应用程序使用 TCP 的拥塞控制,拥塞控制会在拥塞发生时抑制应用程序的发送速率。 通常, IP 电话和 IP 视频会议应用程序的设计者选择在 UDP 上运行他们的应用程序,因为他们希望避免 TCP 的拥塞控制。 此外,一些应用程序不需要 TCP 提供的可靠数据传输。【如果视频会议采用拥塞控制,则网络拥堵时接收方会看到停止的页面,然后在网络恢复后会看到视频中的对象以极快速度完成一系列播放直到跟上当前时间点,若落后过多则需要消耗大量时间播放一系列无意义的内容,导致观众丢失更多内容, 如果用 UDP 则网络恢复后会直接从当前时间点开始进行】R5.在今天的因特网中,为什么语音和图像流量常常是经过 TCP 而不是 UDP 发送?提示:与拥塞控制无关。答: 由于大多数防火墙被配置为阻止 ...
计算机网络自顶向下第二章应用层
应用层协议原理网络应用的体系架构可能的应用架构:
客户-服务器模式(C/S:client/server)
对等模式(P2P:Peer To Peer)
混合体:客户-服务器和对等体系结构
客户-服务器(C/S)体系结构服务器:
一直运行
固定的IP地址和周知的端口号(约定)
扩展性:服务器场
数据中心进行扩展,一个数据中心能够有数十万台服务器, 它们必须要供电和维护。
扩展性差
客户端:
主动与服务器通信
与互联网有间歇性的连接
可能是动态IP地址
不直接与其它客户端通信
对等体(P2P)体系结构对位于数据中心的专用服务器有最小的( 或者没有) 依赖
特点:
(几乎)没有一直运行的服务器
任意端系统之间可以进行通信
每一个节点既是客户端又是服务器
自扩展性-新peer节点带来新的服务能力,当然也带来新的服务请求
参与的主机间歇性连接且可以改变IP地址
难以管理
例子: Gnutella,迅雷
C/S和P2P体系结构的混合体Napster文件搜索:集中C/S
主机在中心服务器上注册其资源
主机向中心服务器查询资源位置
文件传输:P2P
任意P ...
数据库概论第十一章-并发控制
并发控制概述事务是并发控制的基本单位
为了保证事务的隔离性和一致性, 数据库管理系统需要对并发操作进行正确调度。 这些就是数据库管理系统中并发控制机制的责任。
[例 11.1] 考虑飞机订票系统中的一个活动序列:① 甲售票点( 事务乃) 读出某航班的机票余额 A, 设 A=16。② 乙售票点( 事务 T2) 读出同一航班的机票余额 A, 也为 16。③ 甲售票点卖出一张机票, 修改余额 A<–A-1, 所以 A 为 15, 把 A 写回数据库。④ 乙售票点也卖出一张机票, 修改余额 A<–A-1, 所 以 A 为 15, 把 A 写回数据库。结果明明卖出两张机票, 数据库中机票余额只减少 1。这种情况称为数据库的不一致性。 这种不一致性是由并发操作引起的。 在并发操作情况下, 对 T,、 T2 两个事务的操作序列的调度是随机的。 若按上面的调度序列执行, T,事务的修改就被丢失。 这是由于第 4 步中丁2 事务修改 A 并写回后覆盖了乃事务的修改。下面把事务读数据 x 记为 R(x), 写数据 x 记为 W(x)。并发操作带来的数据不一致性包括丢失修改、 不可重复读和读 ...
数据库概论第七章-数据库设计
数据库设计概述数据库设计分6个阶段
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
需求分析和概念设计独立于任何数据库管理系统逻辑设计和物理设计与选用的数据库管理系统密切相关
在需求分析阶段综合各个用户的应用需求; 在概念结构设计阶段形成独立于机器特点、 独立于各个关系数据库管理系统产品的概念模式, 在本篇中就是 E-R 图: 在逻辑结构设计阶段将 E-R 图转换成具体的数据库产品支持的数据模型, 如关系模型, 形成数据库逻辑模式, 然后根据用户处理的要求、 安全性的考虑, 在基本表的基础上再建立必要的视图,形成数据的外模式; 在物理结构设计阶段, 根据关系数据库管理系统的特点和处理的需要进行物理存储安排, 建立索引, 形成数据库内模式。
需求分析数据字典
数据字典是关于数据库中数据的描述,即元数据,不是数据本身
数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善
数据字典是进行详细的数据收集和数据分析所获得的主要结果
※ 数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
概念结构设计将需求分 ...
数据库概论第九章-关系查询处理和优化
查询处理步骤
查询优化-代数优化
(1) 选择运算应尽可能先做。 在优化策略中这是最重要、 最基本的一条。 它常常可使执行代价节约几个数量级, 因为选择运算一般使计算的中间结果大大变小。
(2) 把投影运算和选择运算同时进行。 如有若干投影和选择运算, 并且它们都对同一个关系操作, 则可以在扫描此关系的同时完成所有这些运算以避免重复扫描关系。
(3) 把投影同其前或后的双目运算结合起来, 没有必要为了去掉某些字段而扫描一遍关系。
(4) 把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算, 连接( 特别是等值连接) 运算要比同样关系上的笛卡儿积省很多时间。
(5) 找出公共子表达式。 如果这种重复出现的子表达式的结果不是很大的关系, 并且从外存中读入这个关系比计算该子表达式的时间少得多, 则先计算一次公共子表达式并把结果写入中间文件是合算的。 当查询的是视图时, 定义视图的表达式就是公共子表达式的情况。
数据库概论第五章-数据库完整性
数据库的完整性( integrity)是指数据的正确性( correctness )和相容性( compat- ability )。
数据的正确性是指数据是符合现实世界语义、 反映当前实际状况的
数据的相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的
为维护数据库的完整性, 数据库管理系统必须能够实现如下功能:
提供定义完整性约束条件的机制
提供完整性检查的方法
进行违约处理
实体完整性定义实体完整性关系模型的实体完整性在 CREATE TABLE 中用 PRIMARY KEY 定义。
实体完整性检查和违约处理用 PRIMARY KEY 短语定义了关系的主码后, 每当用户程序对基本表插入一条记录或对主码列进行更新操作时, 关系数据库管理系统将按照实体完整性规则自动进行检查。
简单来说主码唯一且非空
(1) 检査主码值是否唯一, 如果不唯一则拒绝插入或修改。(2) 检査主码的各个属性是否为空, 只要有一个为空就拒绝插入或修改。
参照完整性关系模型的参照完整性在 CREATE TABLE 中用 FOREIGN KEY 短语定义哪些列为外码, 用 REFERE ...
数据库概论第六章-关系数据理论
问题的提出数据依赖是一个关系内部属性与属性之间的一种约束关系。 这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系。 它是现实世界属性间相互联系的抽象, 是数据内在的性质, 是语义的体现。
函数依赖(FunctionalDependency, FD) 和多值依赖( Multi-Valued Dependency, MVD)
函数依赖极为普遍地存在于现实生活中。 比如描述一个学生的关系, 可以有学号(Sno)、 姓名(Sname)、 系名(Sdept) 等几个属性。 由于一个学号只对应一个学生, 一个学生只在一个系学习。 因而当“ 学号” 值确定之后, 学生的姓名及所在系的值也就被唯一的函数值 地确定了。属性间的这种依赖关系类似于数学中的函数 y=f(X)。自变量x确定之后, 相应的函数值y也就唯一的确定了
[例6.1] 建立一个描述学校教务的数据库,该数据库涉及的对象包括学生的学号(Sno)、所在系(Sdept)、 系主任姓名(Mname)、 课程号(Cno)和成绩(Grade)。假设用一个单一的关系模式 Student 来表示, 则该关系模式的属性集合为U ={ ...
数据库概论第十章-数据库恢复技术
事务的基本概念事务
所谓事务是用户定义的一个数据库操作序列, 这些操作要么全做, 要么全不做, 是一个不可分割的工作单位。
事务和程序是两个概念。 一般地讲, 一个程序中包含多个事务。事务的开始与结束可以由用户显式控制。 如果用户没有显式地定义事务, 则由数据库管理系统按默认规定自动划分事务。 在 SQL 中, 定义事务的语句一般有三条:
123BEGIN TRANSACTION;COMMIT;ROLLBACK;
事务通常是以 BEGIN TRANSACTION 开始, 以 COMMIT 或 ROLLBACK 结束。COMMIT 表示提交, 即提交事务的所有操作。 具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去, 事务正常结束。 ROLLBACK 表示回滚, 即在事务运行的过程中发生了某种故障, 事务不能继续执行, 系统将事务中对数据库的所有已完成的操作全部撤销, 回滚到事务开始时的状态。 这里的操作指对数据库的更新操作。
事务的 ACID 特性
事务具有 4 个特性: 原子性( Atomicity )、 一致性( Consistency)、 隔 ...
数据库概论第四章-数据库安全性
数据库安全性概述数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、 更改或破坏。
数据库的不安全因素
非授权用户对数据库的恶意存取和破坏
数据库中重要或敏感的数据被泄露
安全环境的脆弱性
安全标准简介
数据库安全性控制用户身份鉴别
静态口令鉴别 静态口令一般由用户自己设定, 鉴别时只要按要求输入正确的口令, 系统将允许用户使用数据库管理系统。
动态口令鉴别 常用的方式如短信密码和动态令牌方式, 每次鉴别时要求用户使用通过短信或令牌等途径获取的新口令登录数据库管理系统。
生物特征鉴别 生物特征是指生物体唯一具有的, 可测量、 识别和验证的稳定生物特征, 如指纹、 虹膜和掌纹等
智能卡鉴别 智能卡由用户随身携带, 登录数据库管理系统时用户将智能卡插入专用的读卡器进行身份验证。
存取控制存取控制机制主要包括定义用户权限和合法权限检查两部分。定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统。
(1) 在自主存取控制方法中, 用户对于不同的数据库对象有不同的存取权限, 不同的用户对同一对象也有不同的权限, 而且 ...