操作系统
I_ren
这个作者很懒,什么都没留下…
展开
-
操作系统概念笔记2.操作系统结构
用户与操作系统的界面命令解释程序 shell实现方式: 1.本身包含代码以执行这些命令 2.通过命令确定一个文件,以加载到内存并执行 如Linux执行rm fuke.txt,会查找rm文件加载到内存,并用参数fuke.txt来执行批处理界面 如.bat文件用户图形界面系统调用如何向操作系统传递参数:寄存器...原创 2020-04-02 19:11:22 · 220 阅读 · 0 评论 -
操作系统概念笔记1.导论
计算机系统的体系结构单处理器系统多处理器系统- 对称多处理 ( SMP)- 非均匀内存访问 ( NUMA)- 大规模并行处理 (MPP)集群系统操作系统的执行CPU有一种单独模式,用于表示虚拟机管理器是否正在控制系统保护与安全在UNIX系统中,程序的setuid属性允许按照程序文件所有者的用户ID而不是当前的用户ID来运行该程序...原创 2020-04-02 19:05:45 · 92 阅读 · 0 评论 -
深入理解计算机基础——Machine Level Programming
2’s Complement正数:最高位0负数:最高位1,绝对值取反加1如4位情况下:5表示为0101-3表示为1101浮点数表示s:表示正负M:frac,在[1,0, 2.0)间E:exp1.exp≠000…0且exp≠111…1:E = exp - BiasBias = 2^(k-1) - 1...原创 2020-07-21 19:28:47 · 273 阅读 · 0 评论 -
深入理解计算机基础——Memory
存储类型SRAM和DRAM非易失性存储:ROM固态磁盘磁盘缓存磁盘结构:磁盘访问时间 = 寻道时间 + 旋转时间 + 传送时间DMA(Direct Memory Access)不需要CPU的干预,设备自己执行读或写任务;数据传输完毕后,通过中断通知CPU存储结构CacheCache不命中的替换策略:LRUwrite-through:立即将数据写入内存write-back:通过dirty bit,稍后将数据写入内存...原创 2020-07-22 19:43:40 · 423 阅读 · 0 评论 -
深入理解计算机基础——Linking
链接过程Step1:将全局变量、函数定义为symbol,生成relocatable object file(.o file)Step2:将不同relocatable object file合并到同一个executable file(可直接拷贝进入内存执行,加载到0x40000000位置)中,并将symbol用内存中的实际地址替换。ELF.test段:存放代码.rodata段:只读数据.data段:已初始化的全局变量、静态变量.bss段:未初始化的全局变量、静态变量,不占用空间symbol原创 2020-07-23 14:03:55 · 193 阅读 · 0 评论 -
深入理解计算机基础——ECH
异常发生某个事件后将控制移交给kernel异常表:异步异常:处理器外部的事件引起同步异常:执行指令时引起,包括Trap(如syscall), Fault(如page fault), abort(如非法指令)其中,segmentation fault(缺页异常):当指令引用的地址不在存储器中,必须从磁盘中取出时会发生。system call过程(如open):1.用户调用open(filename, options)函数2.调用__open函数,将syscall number存放在%ea原创 2020-07-28 19:38:52 · 308 阅读 · 0 评论 -
深入理解计算机基础——System Level IO
File I/O 函数打开/关闭文件:open, close读写文件:read, write改变文件下一个读写的位置:lseek文件类型普通文件目录socket:进程通信使用命名管道符号链接设备文件Buffer I/O每次读取文件时,先检查是否在buffer中文件描述符数据结构dup2复制文件描述符...原创 2020-07-29 20:22:00 · 249 阅读 · 0 评论 -
深入理解计算机基础——virtual memory
页表页表:记录虚拟地址到物理地址的映射unallocated:未分配的cached:缓存在内存中的(有效位=1)uncached:未缓存在内存中的page hit:查找的页存在于cache中page fault:查找的页不在cache中内存保护通过permission bits进行保护虚拟地址翻译1.CPU向MMU请求虚拟地址对应的物理地址2.MMU查找cache中有没有对应的page table entry3.如果page hit,则返回对应的page table en原创 2020-08-02 21:33:24 · 406 阅读 · 0 评论 -
深入理解计算机基础——Network
Socketsocket interfacegetaddrinfoint getaddrinfo(const char *host , /* hostname*/ const char *service, /*Port or service name*/ const struct addrinfo *hints /*input parameters */ struct addrinfo **res原创 2020-08-03 18:30:48 · 219 阅读 · 0 评论 -
深入理解计算机基础——Synchronization
信号量P(S)如果s > 0,则–s如果s = 0,则阻塞V(S)s++如果有若干线程为了S而阻塞,则启动一个生产者-消费者问题生产者等待empty slot,向其中增加item,并通知消费者消费者等候buffer item,从buffer中移除该item,并通知生产者void sbuf_insert(sbuf_t *sp, int item){ P(&sp->slots); // wait for available slot P(&sp->原创 2020-08-05 20:11:01 · 215 阅读 · 0 评论