![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统学习
nullganbadie
乘风破浪会有时,直挂云帆济沧海
展开
-
死锁
1、死锁定义如果一个进程集合中的每一个进程都在等待只能由该进程集合中的其他进程才能引发的事件,那么,该进程集合就是死锁的。2、发生条件互斥条件。每个资源要么已经分配给了一个进程,要么就是可用的。 占有和等待条件。已经得到了某个资源的进程可以再请求新的资源。 不可抢占条件。已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放。 环路等待条件。死锁发生时,系统中...原创 2019-11-01 19:02:00 · 124 阅读 · 0 评论 -
深入理解计算机系统——第一、二章
前言本系列博客主要作为学习记录的笔记,仅个人使用。书籍:深入理解计算机系统 第三版1 第一章1.1 系统硬件组成 总线:携带信息字节,并负责在各个部件间传递 I/O设备:与外部联系的通道 主存:存放程序和程序处理的数据 处理器:PC指向主存的某条机器语言指令,cpu在指令的要求下执行相应的操作 1.2 运行hello程序1.2....原创 2019-06-11 11:02:20 · 267 阅读 · 0 评论 -
深入理解计算机系统——第三、四、五章
3 程序的机器级表示第三章主要讲述,汇编指令对寄存器的操作,以实现代码的功能。包括:加法、减法、乘法、循环、条件、数组、指针...的内部原理。 union: 不同字段引用相同的内存块。 字节对齐 函数指针:函数指针的值是该函数机器代码表示中第一条指令的地址。 3.1 GDB调试器g++ -o test_gdb test.cpp -ggdbfile...原创 2019-06-12 11:31:06 · 192 阅读 · 0 评论 -
理解shell工作原理 fork和exec函数
一 shell既是一个连接用户和Linux内核的程序,又是一门管理 Linux 系统的脚本语言。int main(int argc, char* argv[]){ char cmd[20]; while(1) { scanf("s%", cmd); if(!fork()) exec(cmd); ...原创 2019-06-29 16:53:28 · 1491 阅读 · 0 评论 -
深入理解计算机系统——第七章 链接
7.1 连接器使得分离编译成为可能。我们不用将一个大工程组织为巨大的源文件,而是将它分解为更小的模块,可以独立修改和编译这些模块,并重新链接应用,而不必重新编译其他的文件。...原创 2019-09-07 17:39:06 · 139 阅读 · 0 评论