自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 西电李航 操作系统课程笔记 day14 security

文章目录security目标/威胁数据机密性(data confidentiality)/数据泄露数据完整性(data integrity)/数据篡改系统可用性(system availability)/拒绝服务内部攻击方式逻辑炸弹(logic bombs)后门(trap doors)网络钓鱼(logic spoofing)缓冲区溢出(buffer overflow)外部攻击方式恶意软件(Malware)特洛伊木马(trojan horses)病毒(virus)蠕虫病毒(worm)隐蔽信道(convert

2021-06-24 15:24:45 703 1

原创 西电李航 操作系统课程笔记 day13 multiple processor

文章目录多处理机系统(multiple processor systems)三种多处理机模型共享存储器多处理机(shared memory model)消息传递型多计算机(message passing multiprocessor)广域分布式系统(wide area distributed system)多处理机硬件(multiprocessor)基于总线的UMA多处理机交叉开关UMA多处理机多级交换网络UMA多处理机NUMA多处理机多处理机操作系统每个CPU有自己的操作系统主从多处理机(master-s

2021-06-24 15:24:10 665

原创 西电李航 操作系统课程笔记 day12 deadlock

文章目录deadlock死锁概念死锁本质死锁条件死锁处理策略忽略问题(鸵鸟算法)检查并恢复动态避免死锁破坏必要条件之一死锁检测和死锁恢复检测死锁的方法资源分配图分配/请求矩阵资源轨迹图(进度图)//CSAPP note - day13 三种并发编程恢复方法抢占回滚kill死锁避免安全状态和不安全状态单资源算法多资源算法死锁预防破坏互斥破坏占有并等待破坏不可抢占破坏环路等待其他问题两阶段加锁(two-phase locking)通信死锁活锁(livelock)饿死(starvation)饿死(starvati

2021-06-24 15:22:23 540

原创 西电李航 操作系统课程笔记 day11 IO software&layer

文章目录Principles of IO softwareIO软件目标设备独立性(device independence)统一命名(uniform naming)错误处理(error handling)同步(synchronous)异步(asynchronous)传输缓冲(buffering)共享设备和独占设备三种实现IO的手段程序控制IO(programmed IO)中断驱动IODMA IOIO software layer中断处理程序设备驱动程序(device driver)功能和特性:驱动程序运作过程

2021-06-24 15:20:40 755 1

原创 西电李航 操作系统课程笔记 day10 IO hardware principles

文章目录Principles of IO hardwareIO设备块设备(block device)字符设备(character device)设备控制器(device controller)内存映射IO单独的IO空间和内存空间内存映射IO(memory-mapped IO)混合方案如何工作直接存储器读取DMA(Direct Memory Access)中断中断向量: 一个记录中断信息的表格中断发生时,在哪里保存当前状态信息?精确中断和不精确中断Principles of IO hardwareIO设

2021-06-24 15:18:46 430

原创 西电李航 操作系统课程笔记 day9 management & optimization of file system

文章目录file system management & optimization磁盘空间管理(disk space management)块大小空闲块管理磁盘块安全文件系统可靠性(reliability)备份(backup)错误恢复(consistency)性能加cache提前读(block read ahead)减少磁盘臂移动(reducing disk arm motion)减少碎片(de fragmentation)exampleISO9660目录项MS-DOS目录项UNIX V7目录项UN

2021-06-24 15:15:59 454

原创 西电李航 操作系统课程笔记 day8 Implementation of File system

文章目录File system Implementation文件系统(file system)布局普通文件(file)分配(allocation)连续存储指针存储追踪(tracking)inode索引节点(index node)目录文件定长存储变长存储链接文件(Link File)硬链接符号链接(symbolic linking)File system Implementation文件和目录如何存储,磁盘空间如何管理,系统如何工作文件系统(file system)布局文件系统存放于磁盘上,

2021-06-24 15:14:26 480

原创 西电李航 操作系统课程笔记 day7 File & Directory

文章目录Filewhy:扩展名文件类型(file types)普通文件(regular file)非普通文件:简单的二进制文件:可执行文件 exe & 归档文件(库文件) archive文件访问方法(access methods)顺序访问(Sequential access)随机访问(Random access)文件属性文件内部结构(File structure)Directory单级目录(Single Level Directory)二级目录(Tow Level Directory)多级目录(Hi

2021-06-24 15:13:16 604

原创 计组U5 CPU设计

文章目录CPU设计CPU功能CPU组成部件图指令设计格式指令执行取指令译码取操作数双操作数指令单操作数指令无操作数指令执行指令转移指令双操作数指令单操作数指令微操作命令取指令码周期FIC取操作数周期FDC执行周期EXEC微程序控制器微程序控制器结构后继地址两地址格式单地址格式可变格式多分支地址微指令控制域编码水平型微指令直接表示法字段译码法垂直型微指令区别:微指令设计微程序编程CPU设计CPU功能指令控制 操作控制 时间控制 数据加工 中断处理 其他处理CPU组成部件图AX-DX: 通用

2021-06-24 15:11:39 892

原创 计组U4汇编

文章目录Unit4指令格式寻址方式寄存器寻址方式总结立即寻址直接寻址寄存器寻址寄存器间接寻址寄存器相对寻址基址变址寻址基址变址相对寻址指令传送MOV D,S S->DSCHG D,S D<->SLEA S,D D地址偏移量->S(16位)PUSH QPOP QADDADD OPRD1,OPRD2 ;(add)ADC OPRD1,OPRD2 ;(进位加法))INC OPRD ;(++i)SUBSUB OPRD1,OPRD2 ;(subtract)SBB OPRD1,OPRD2 ;

2021-06-24 15:05:10 646

原创 计组U2&U3数据表示,运算方法

@[toc]Unit2反码是原码的数值位取反补码求补为所有位取反再末位加1移码为补码符号位取反浮点数非规格化表示就是 F=M(尾数,补码或原码)∗R(基数)E(阶码,移码)F = {M(尾数,补码或原码)} * {R(基数)}^{E(阶码,移码)}F=M(尾数,补码或原码)∗R(基数)E(阶码,移码)规格化尾数为正时,最高位为1(0.1XXXXX). 为负时,最高位为0(1.0XXXXX)IEEE:  E=e-Bias(偏置量,为2k−12^{k-1}2k−1 -1,如127,10.

2021-05-19 18:20:25 805

原创 西电李航 操作系统课程笔记 day6 issues

@[toc]design issues内存管理的优化减少缺页中断(Page Fault Reducing)替换页属于哪个进程替换操作的范围局部分配策略(Local)替换本进程中页面全局分配策略(Global)替换全局中缺页中断率算法PFF(Page Fault Frequency)通过缺页中断率动态的分配各进程的页面数(建立在全局分配策略上)抖动(Thrashing)反复请求最近替换掉的页面一般是因为内存太少解决方法: 控制进程数量清除策略(C.

2021-05-19 18:16:47 489

原创 西电李航 操作系统课程笔记 day5 Page Replacement Algorithms

@[toc]页面替换算法(Page Replacement Algorithms)page fault: 找不到页面最优(Optimal)页面替换算法替换最远的未来才会被使用的页面不可实现的用于评测其他算法优点:最小的page fault最不近使用(LRU)(Least Recently Used)替换最远的过去被使用的页面(最近没有使用过)严格LRU:维护一个链表或记录各页面使用时间每次内存访问都要调整,开销大(淘汰)0,1,2,3,2 每.

2021-05-19 18:15:57 560

原创 西电李航 操作系统课程笔记 day4 Memory Management,Virtual Memory

@[toc]内存管理(Memory Management)为什么需要内存管理无存储器抽象(No Memory Abstraction)问题: 多进程时怎么实现不知道程序加载内存的情况,绝对寻址会出错解决: 静态重定位(static Relocation):加载程序时遍历整个程序逐个修正地址加偏移量程序都从0地址开始写,操作系统负责运行时修改到正确的地址问题: 需要连续的物理内存一种存储器抽象-地址空间动态重定位(Dynamic Relocation):稍微解决了需要连续.

2021-05-19 18:15:09 700

原创 西电李航 操作系统课程笔记 day3 classic IPC problem

@[toc]classic IPC problem哲学家就餐问题(Dining Philosophers Problem)易产生死锁错误解法会死锁解法while(true) { think(); take_forks(i); eat(); put_forks(i); }记录各个哲学家状态,每次尝试吃时检测相邻的两个哲学家状态mutex保护状态表state[N],s[N]信号表示拿起叉子,用于同步操作(test()通过时s[i]为1,take_forks()才能最后down.

2021-05-19 18:13:35 513

原创 西电李航 操作系统课程笔记 day2 Scheduling

@[toc]# 调度(Scheduling)> 所有进程之间的关系(多进程就绪时,哪一个应该在CPU上执行)何时调度 怎么调度 怎么适合上层应用何时调度进程生成(process create)进程退出(process exits)此进程放弃CPU,决定下一个进程进入进程因IO堵塞(process block by IO)IO中断(IO interrupt)IO等待的包到达后唤醒堵塞进程转变为就绪态怎么调度即调度算法(操作系统的核心)课本分类(不严格):.

2021-05-19 18:12:14 834

原创 西电李航 操作系统课程笔记 day1 IPC

@[toc]IPC(inter process communication进程间通信)竞争条件(Race conditions)进程共享某些共用存储区临界区(Critical Region)互斥访问,避免临界区的竞争临界区: 对共享内存进行访问的程序片段条件:1)任何两个进程不能同时处于其临界区2)不应对CPU的速度和数量做任何假设3)临界区外运行的进程不得阻塞其他进程4)不得使进程无限期等待进入临界区互斥方案屏蔽中断单处理器系统中,每个进程刚进入临界区后立即.

2021-05-19 18:10:35 1177

原创 西电李航 操作系统课程笔记 day0 process,thread

@[toc]进程(process)定义:进程:正在运行的程序内核:操作系统本身内部结构(internal structure):代码段(segment)栈段存储局部变量,返回地址区分进程和程序的重要之处数据段地址空间内核地址空间用户地址空间> 分开因权限问题内核态:内核空间+内核权限用户态:用户空间+用户权限硬件提供PCB(process control block)保存进程被中断时的信息(上下文context概念?)状态(St.

2021-05-19 18:06:57 1061

原创 深入理解计算机系统 笔记 day13 三种并发编程

@[toc]并发编程三种构造并发程序的方法:进程每个逻辑控制流都是一个进程,由内核调度有独立的虚拟地址空间,和其他流通信要显式的IPC(进程间通信)机制I/O多路复用程序在一个进程上下文中显式调度自己的逻辑流,程序为单独进程,所有流共享地址空间线程线程是运行在单一进程上下文的逻辑流,由内核调度共享地址空间,由内核调度(内核调度的IO多路复用?)基于进程的并发编程 P682构建:父进程接收客户端的连接请求,创建一个新的子进程为每个新客户端提供服务.

2021-05-19 18:01:17 150

原创 深入理解计算机系统 笔记 day12 Web,网络

@[toc]网络编程 P643客户端-服务器编程模型模型中应用由服务器进程和客户端进程组成的服务器管理资源,代表客户端进行操作基本操作:事务客户端需要服务时,向服务器发出亲求,即发起一个事务.服务器收到请求后解释并操作它的资源服务器给客户端发送一个响应,等待下一个请求网络简单思维模型对主机而言,网络只是一种IO设备硬件&概念主机上的适配器:IO总线扩展槽上的提供了到网络的物理接口存储一个48位的以太网适配器唯一地址接收的数据从适配器,经过IO.

2021-05-19 17:59:56 109

原创 深入理解计算机系统 笔记 day11 系统级IO,共享文件

系统级IO P624Unix IO所有IO设备都模型化为文件,输入输出当作对文件的读写打开文件:程序向内核请求打开相应文件表示想访问一个IO设备内核返回非负整数描述符,标识此文件文件所有信息由内核记录,程序只需记住描述符shell创建每个进程开始时都有3个打开的文件:标准输入 标准输出 标准错误改变文件位置:内核对打开的文件维护文件位置k,为文件开头起始的字节偏移量读写文件:文件位置k>=文件大小m时,读操作会触发EOF(文件结尾没有明确的EOF)关闭.

2021-05-03 14:37:04 131

原创 深入理解计算机系统 笔记 day10 虚拟内存

虚拟内存(VM) P559虚拟内存将主存看作磁盘上地址空间的高速缓存,主存中保存活动区域,根据需要在主存和磁盘中传送数据.(一致)为每个进程提供一致的地址空间(私有)保护每个进程的地址空间地址概念 P560物理地址: 主存上,以字节为单位物理地址空间不要求M=2mM=2^mM=2m虚拟地址虚拟地址空间N=2nN=2^nN=2n虚拟地址--地址翻译硬件(MMU(内存管理单元)+操作系统) + 页表(物理内存中)-->物理地址虚拟内存 P561虚拟内存存放在磁盘上也被分.

2021-05-02 22:05:08 169

原创 深入理解计算机系统 笔记 day9 异常控制流,进程,信号

异常控制流ECF1.系统需要通过控制流突变对系统状态的变化作出反应2.处理器检测到异常,通过一个异常表跳转表进行间接过程调用,异常表的起始地址放在异常表基址寄存器中,每个异常都有唯一的异常号,为异常表中的索引,有处理器分配的也有操作系统内核分配的.3.异常处理程序运行在内核模式下,从用户程序转移到内核时,信息会被压入内核栈异常的类别 P504中断: IO等待硬件,指令执行过程中处理器检测到中断引脚电压变高,就从系统总线读取异常号,调用适当异常处理程序,处理程序返回时将控制返回给下一条指令

2021-04-28 14:42:47 119

原创 深入理解计算机系统 笔记 day8 链接

链接 P465 //待补充编译器驱动程序main.c --C预处理器->main.i(ASCII码中间文件) --C编译器(ccl)->main.s(ASCII码汇编文件) --汇编器(as)->main.o(可重定位目标文件) --链接器程序(ld),组合->prog(可执行目标文件)shell调用加载器,将prog中的代码和数据复制到内存,将控制转移到这个程序开头目标文件: (代码和数据节组成)纯粹是字节块的集合,包含程序代码,程序数据或引导链接器或加载器的

2021-04-28 14:40:03 72

原创 深入理解计算机系统 笔记 day7 存储器结构

存储器层次结构 P398随机访问存储器(RAM) P400静态SRAM 双稳态存储器单元 有电永远保持 用于高速缓存动态DRAM 易干扰不稳定 系统会周期性读出重写纠错DRAM16 * 8(d * w)d个(r行c列)超单元,每个超单元由w个DRAM单元(1位)组成8个data引脚传出入一个字节,2个addr引脚携带行列的超单元地址读取:内存控制器先将整行内容复制到内部行缓冲区,再从行缓冲区复制出列地址的超单元主存访问,总线 P405CPU芯片<–系统总线–>

2021-04-28 14:36:23 126

原创 深入理解计算机系统 笔记 day6 优化性能,处理器结构,并发与性能

优化程序性能 P342考虑内存别名使用(不同指针可能指向相同地址),限制了编译器的优化策略减少循环中的重复调用某个函数(特别其值一直不变时),将其存储于一个变量中减少不必要的内存引用,在重复计算中计算过程用局部变量替代现代处理器的整体结构控制单元(ICU)读出指令序列并生成一组基本操作,执行单元(EU)执行操作ICU在执行指令前很早就从指令高速缓存中取指,有足够时间译码发送给EU内存引用和算数计算会被分开成不同的基本操作加载和存储单元负责读写内存,每个单元都有一个加法器

2021-04-28 14:34:03 68

原创 深入理解计算机系统 笔记 day4 栈,寄存器行为,系统安全,浮点行为

汇编3过程过程调用的机制:传递控制。在进入过程Q的时候,程序计数器必须被设置为Q的代码的起始地址,然后在返回时,要把程序计数器设置为P中调用Q后面那条指令的地址。传递数据。P必须能够向Q提供一个或多个参数,Q必须能够向P返回一个值分配和释放内存。在开始时,Q可能需要为局部变量分配空间,而在返回前,又必须释放这些存储空间运行时栈 P164栈和寄存器存放传递控制和数据,分配内存的信息.超出寄存器存放的大小时就会在栈上分配空间p->q调用时:p压入返回地址q保存p的寄存器状态(如q

2021-04-28 14:31:55 186

原创 深入理解计算机系统 笔记 day3 汇编2控制,跳转部分

汇编2控制条件码 P135(略读)leaq只进行地址运算不改变条件码CMP和TEST指令,只改变条件码,有大小后缀,cmp为减test为加先用比较和测试指令再用SET跳转指令 P138直接跳转 jmp .L1 //跳转目标作为指令的一部分编码间接跳转 jmp *%rdx //跳转目标从寄存器或内存中读出(加括号为求值)无括号则跳寄存器中的值,有括号跳寄存器中的值指向的地址条件跳转只能直接跳转,名字与SET指令相匹配跳转指令的编码 P139常用PC相对的(PC-rel

2021-04-28 14:30:04 112

原创 深入理解计算机系统 笔记 day2 汇编基础,访问,算数部分

汇编1数据格式一个字节(FF)为8位,2个16进制数一个字(FF FF)为双字节,16位访问信息指令后缀 P119(下为整数,浮点用的另一套寄存器和指令,可能有歧义)b = bytew = wordl = double words(long word)q = quad words(四字)CPU包含一组16个存储四字的通用目的寄存器(x86-64) P119存储整数和指针以 %r 开头内存引用 P121立即数 常见$后跟整数(10或16进制),表示常数值(该地址)寄存器

2021-04-28 14:26:28 151

原创 深入理解计算机系统 笔记 day1 整数,浮点

整数运算加法p62无符号 判断相加是否溢出:合是否小于加数有符号 0___+MAX -MAX____-1正溢出结果为负补数(减去2w),负溢出为正补数(加上2w)检测:加数同号(异号不会溢出)但合与其异号-(-MAX) = -MAX (-x 为 ~x+1)乘除法p67乘 可分解为几个2的n次方的合(14 = 232^323 + 222^222 + 212^121) (可通过该乘数的二进制表示的1判断)乘次方则左移n位,最后相加除 2的n次方 右移n位,但负数须加..

2021-04-28 14:23:56 89

原创 深入理解计算机系统 笔记 day0 大小端,补码,指针类型与存储地址问题

大小端法p29* 判断:c的unit, 地址强转指针查看,即 unsigned char a = 0x1234567891; printf("%x", (&a)[0]); //指针也可用数组表示法读取字节可以实现溢出,查看别处字节区别数组与元素的关系,如字符串为char数组,没有大小端行为(只为单字节)指针指向地址与指针类型的取指问题p34指针依旧存储首地址,指针类型影响解引用.const char *cp = "abcdef";pri

2021-04-28 14:21:26 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除