操作系统
1、操作系统:
(1)特点:
用户角度:是一个控制软件
资源分配
硬件之上,应用程序之下,为应用软件提供服务支撑
(2)内部组件:
CPU调度器
物理内存管理
虚拟内存管理
文件系统管理
中断处理和设备驱动
(3)特征:
并发:一段时间内有多个正在运行的程序,需要OS管理和调度
(并行:一个时间点上有多个正在运行的程序)
共享
虚拟:利用多道程序设计技术
异步:向前推进的速度不可预知,但只要运行环境相同,OS需要保证程序运行的结果相同
2、计算机体系结构/内存分层体系:
CPU:运算器、控制器、寄存器、缓存Cache、存储管理单元
内存
外设
内存分层体系:
3、中断、异常和系统调用
(1)中断
外中断:来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断;
内中断:在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;
区别:
- 陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
- 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
- CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
(2)系统调用:
OS与应用程序之间的接口,是用户程序取得OS服务的惟一途径。
与一般的过程调用的区别:
运行在不同的系统状态:调用程序在运行在用户态,而被调用的程序运行在系统态;
通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度;
4、死锁、同步和互斥
(1)死锁:
指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态
(2)同步:
直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的。
(3)互斥:
间接制约,比如多个进程同时请求打印机(没使用SPOOLing技术)、多个进程同时请求一张网卡发送数据包等。
5、管程:
(1)组成:
一组局部变量、
对局部变量进行操作的一组过程
对局部变量进行初始化的语句序列
(2)引入目的:
因为Wait/Singal操作太过分散,对它的维护很麻烦且容易造成死锁。
(3)特点:
管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;
任何时刻只能有一个进程进入管程执行;进程只能通管程提供的过程入口进入管程;
6、多道程序技术:
进一步提高了CPU利用率(阻塞)
提高内存和I/O设备利用率(小作业把内存浪费了)
增加系统吞吐量(两都提高后的必然)
7、缓冲技术:
为了协调吞吐速度相差很大的设备之间数据传送而采用的技术。
可以协调CPU与I/O设备之间速度不匹配的矛盾;
可以减少对CPU的中断频率;
提高设备的利用率(总的来说,提高CPU利用率,提高并行度)。
8、地址空间
(1)逻辑地址空间
逻辑地址生成:
(2)物理地址空间
物理地址生成:
(3)过程:
ALU发送带有逻辑地址参数的请求
CPU里的MMU会查询逻辑地址映射表是否存在对应物理地址,没有则去内存找
如果找到,控制器向主存发送需要某个物理地址内容的请求
主存通过总线将内容返回CPU,CPU执行指令
(4)地址安全检查
9、连续内存分配
(1)分区的动态分配:
当一个程序准许运行在内存中时,分配一个连续的区间
分配一个连续内存区间给运行的程序以访问数据
(2)分配策略:
首次适配
最优适配
最差适配
(3)碎片整理:
压缩式:拼凑
交换式:内存<-->硬盘
10、非连续分配
页寻址机制:
页映射到帧
页是连续的虚拟内存,帧是非连续的物理内存
不是所有的页都有对应的帧
性能问题:
访问一个内存单元需要2次内存访问:获取页表项 + 访问数据
页表可能非常大
解决方法:
缓存:TLB快表
间接访问:多级页表
(1)分段 操作系统建立段表:段号、段内偏移
(2)分页 操作系统建立页表:页号、页内偏移
11、虚拟内存
(1)覆盖技术和交换技术
(2)虚拟存储技术:
基本特征:大的用户空间、部分交换、物理内存分配的不连续性
(3)虚拟页式存储管理:
在页式管理基础上,增加请求调页和页面置换功能:驻留位、保护位、修改位
缺页中断
平均访问时间 = 访存时间 * 页表命中率 + 缺页处理时间 * 缺页率
(4)总结:
计算机网络
1、协议
TCP:
全双工、面向连接、可靠性(超时重传、拥塞控制)
端到端
三次握手建立连接,四次握手释放连接
可用于可靠要求高的场合如:SMTP,FTP,HTTP等
UDP:
尽最大努力交付
无连接服务,提供不可靠交付,且无确认机制
主要用于即时强的场合如:视频聊天,语音电话等
DHCP:动态主机配置协议,用于给主机动态分配ip地址,应用层
RIP:路由信息协议,基于距离的路由选择协议
2、面向连接服务和无连接服务:
面向连接服务:
具有连接建立、数据传输和连接释放这三个阶段。
在数据交换之前,必须先建立连接。当数据交换结束后,则必须终止这个连接。
在传送数据时是按序传送的,是可靠交付。
比较适合于在一定期间内要向同一日的地发送许多报文的情况。
无连接服务:
两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。
这些资源将在数据传输时动态地进行分配。
灵活方便和比较迅速。但无连接服务不能防止报文的丢失、重复或失序。是一种不可靠的服务,"尽量大努力支付"
3、分布式计算机系统和计算机网络的比较:
分布式计算机系统:
在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行。且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;
计算机网络:
却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。
两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能。
4、实体和协议:
实体:
计算机网络中各类设备(包括节点机设备、 通信设备、终端设备、存储设备、电源系统等)以及为此服务的其他硬件设备的总称。
协议:
控制两个对等实体进行通信的规则的集合
协议和服务的联系:
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层协议,还需要使用下面一层提供服务。
5、网络时延:
(1)传输时延:
分组在链路中传输所花费的时间,
(2)传播时延:
路由器将分组转发出去所需要的时间;若链路拥塞,分组还要经受排队时延,这是分组在某一路由器端等待转(分组在链路上等待传输)发所花费的时间。
数据库设计
1、独立性:
数据独立性
物理独立性:
指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。
逻辑独立性:
指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。
2、数据保护:
安全性控制:用户身份鉴别、数据加密、存取控制
完整性控制:保证数据正确性
并发性:解决多用户冲突
数据恢复