操作系统
文章平均质量分 59
坠金
记性很差,写博客一是记录,二是交流分享,欢迎批评
展开
-
锁机制:互斥,自旋,读写,RCU
写者要从链表中删除元素 B,它首先遍历该链表得到指向元素 B 的指针,然后修改元素 B 的前一个元素的 next 指针指向元素 B 的 next 指针指向的元素C,修改元素 B 的 next 指针指向的元素 C 的 prep 指针指向元素 B 的 prep指针指向的元素 A,在这期间可能有读者访问该链表,修改指针指向的操作是原子的,所以不需要同步,而元素 B 的指针并没有去修改,因为读者可能正在使用 B 元素来得到下一个或前一个元素。如果解锁时有一个以上的线程阻塞,那么所有该锁上的线程都被编程就绪状态,原创 2023-06-04 16:45:24 · 329 阅读 · 0 评论 -
几个关于内存空间的问题
栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。程序在运行的时候用malloc或new申请任意多少的内存,程序员负责在何时用free或delete释放内存。从高地址到低地址,一个程序由命令行参数和环境变量、栈、文件映射区、堆、BSS段、数据段、代码段组成。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量,static变量。栈从高地址向低地址增长。存放程序中未初始化的全局变量和静态变量的一块内存区域。命令行参数是指从命令行执行程序的时候,给程序的参数。原创 2023-04-27 13:33:17 · 400 阅读 · 0 评论 -
内存分配
将内存地址分配给程序(指令和数据)。cpu如果要执行程序,则必须首先将其放置在计算机的内存中,cpu可以从那里读取和执行它。内存分配分为静态内存分配,动态内存分配。原创 2022-12-21 14:01:06 · 94 阅读 · 0 评论 -
线程和进程的区别
进程和线程都是CPU工作时间段的描述。是运行中的程序指令的一种描述,需要与程序中的代码区别开来相比电脑里的其他硬件,CPU速度极快,寄存器仅能够接近其处理速度,RAM和别的挂在各总线上的设备则难以望其项背。因为速度差异,CPU实际的执行时间和等待执行的时间是数量级的差异。比如工作1秒钟,休息一个月。那当多个任务要执行时,为了给用户更好的并发性体验,CPU就在多个任务间切换。原创 2023-02-17 11:36:04 · 352 阅读 · 0 评论 -
硬盘、内存、Cache和寄存器
内存需要刷新电容以保持数据的存储,刷新周期通常为64ms。这意味着内存中存储的数据需要在每64ms刷新一次,否则数据可能会丢失。硬盘、内存、Cache和寄存器可以被看作四个等级的存储结构,其读写速度,容量会随着存储层级的升高而逐渐变快,变小。Cache和寄存器通常需要电源持续供电才能保持数据的存储。硬盘在断电后数据不会被清除,而。原创 2023-04-11 17:17:21 · 487 阅读 · 0 评论 -
内存映射(mmap)和共享内存(shm)
内存映射(Memory mapping)技术和共享内存(Shared memory)是两个相关但不完全相同的概念。内存映射可以用来实现共享内存,但它们之间并非简单的包含关系。原创 2023-04-11 15:20:23 · 936 阅读 · 0 评论 -
进程的状态转换
进程的状态模型有三种,从最简单的说起,方便理解。重点是哪些状态可以经由哪些状态到达,以及三种模型之间多了什么状态。原创 2023-04-10 19:46:46 · 597 阅读 · 0 评论 -
操作系统内存管理-分页,分段
分页分页式内存管理最早是在1960年代发明的,早期的计算机内存容量较小,程序和数据都只能存储在连续的物理内存地址中,因此需要一种机制将逻辑地址空间映射到物理地址空间。分页式内存管理技术将物理内存分成固定大小的页框,将程序和数据分成大小相等的页,并将页映射到页框中,从而允许程序和数据在不连续的物理内存地址上运行分段是在分页式内存管理技术之后发明的,其主要目的是为了更好地管理程序和数据的逻辑结构。原创 2023-03-09 14:17:56 · 521 阅读 · 0 评论 -
操作系统中的静态链接
是一个编译器的工具,它负责将程序所依赖的库文件的代码和数据合并到可执行文件中。静态链接器在链接时会检查程序所依赖的库文件,并将这些库文件中的代码和数据复制到可执行文件中。C++语言中的static关键字是用来限制变量或函数的作用域的。相对于动态链接,静态链接的主要优点是可执行文件更容易分发和运行,因为它不需要依赖操作系统中已经安装的库文件。是指在编译程序时将程序所依赖的库文件的代码和数据复制到可执行文件中,生成一个完全独立的可执行文件,这个可执行文件在运行时不需要再依赖其他库文件。这个过程被称为静态链接。原创 2023-03-06 10:16:57 · 505 阅读 · 0 评论 -
虚拟内存
中。虚拟内存的主要作用是扩展主存的容量,使得每个进程能够使用更大的内存空间,提高系统的可用性和性能。同时,虚拟内存还可以提供内存保护、共享和动态加载等功能,保证程序的安全性和灵活性。需要注意的是,由于虚拟内存的使用需要磁盘和主存之间频繁的数据交换,因此会带来一定的性能开销。因此,在应用程序设计和系统配置中,需要合理地使用虚拟内存,并根据实际情况来进行调整。原创 2023-03-05 23:14:18 · 330 阅读 · 0 评论 -
死锁与假脱机打印机技术
超时机制:如果一个进程一直无法获得需要的资源,那么就会引入一个超时机制,即在一定时间内如果无法获取到资源,就放弃当前的资源请求,并释放已经占用的资源。如果一个进程持有一个资源并且请求另一个正在被其他进程占用的资源,那么该进程将一直等待直到该资源被释放。资源抢占策略:如果一个进程请求的资源已经被另一个进程占用,可以通过抢占已经占用的资源,来满足当前进程的资源需求。循环等待(Circular wait):存在一个进程资源的循环链,每个进程都在等待链中的下一个进程所占有的资源。了多个进程同时访问打印机所导致的。原创 2023-03-05 16:44:38 · 465 阅读 · 0 评论