
操作系统
文章平均质量分 88
zzh_404_not_found
这个作者很懒,什么都没留下…
展开
-
趣谈网络协议-应用层篇(HTTP)
一、HTTP请求的准备二、HTTP请求的构建三、HTTP返回的构建四、HTTP2.0五、QUIC协议原创 2022-01-16 00:38:36 · 159 阅读 · 0 评论 -
操作系统-进程篇5(死锁)
一、死锁问题定义:进程A持有一种资源等待进程B所占有的资源,同时进程B等待进程A持有的资源产生原因:进程并发执行二、系统模型1. 资源的定义2. 资源的特征可重复使用:进程获得资源,后来释放,由其他进程重用处理器,I/O通道,主/副存储器,设备和数据结构(文件、数据库和信号量)可以视为资源如果每一个进程拥有一个资源,并请求其他资源,此时可能产生死锁三、死锁特征四、死锁处理方法1. 死锁预防2. 死锁避免3. 死锁检测4...原创 2021-07-11 16:56:27 · 228 阅读 · 0 评论 -
操作系统-进程篇2(处理器调度)
一、背景1. 上下文切换切换cpu的当前任务,从一个进程/线程切换到另一个 保存当前进程/线程在PCB/TCB中的执行上下文(CPU状态) 读取下一个进程/线程的上下文2. cpu调度从就绪队列中挑选一个进程/线程作为cpu将要运行的下一个进程/线程 调度程序:挑选进程/线程的内核函数3. 调度的时机什么时候调度:进程状态(就绪->运行;运行->等待;运行->退出)发生变化时,会发生一次调度 内核运行调度程序的条件:一个进程从运行状态切换到等待状态;一个进程被终原创 2021-07-04 19:47:21 · 274 阅读 · 0 评论 -
操作系统-进程篇3(进程互斥)
一、背景1. 线程分类独立的线程:不和其他资源共享资源或状态 确定性:输入状态决定结果 可重现:能够重视现起始条件,I/O 调度顺序不重要合作线程:在多个线程中共享状态 不确定性 不可重新(不做同步的情况下) 不确定性和不可重现意味着bug可能间歇性发生2. 线程/进程合作的优点共享资源 加速:I/O操作和计算可以重叠;在多处理器环境下,程序可以分成多个部分执行 模块化:将大程序分解成小程序,使系统易于扩展3. 例子假设在程序中运行:new_pid=next原创 2021-07-08 00:37:36 · 196 阅读 · 0 评论 -
操作系统-进程篇1(进程/线程)
一、进程的描述1. 进程定义进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。(程序是一个静态的过程,进程是一个动态过程)2. 进程的组成一个进程包括:程序的代码、程序处理的数据、程序计数器中的值(指示下一条将要运行的程序指令)、通用寄存器的当前值(堆、栈)、一组系统资源(如打开的文件)总之,进程包含了正在运行的一个程序的所有状态信息。进程和程序的关系:程序是产生进程的基础 程序的每次运行构成不同的进程 进程是程序功能的体现 通过多次执行,一个程序可对原创 2021-07-04 01:05:44 · 309 阅读 · 0 评论 -
操作系统-内存篇4(虚拟内存页面置换算法)
一、功能与目标功能:缺页中断后,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换目标:尽可能减少页面的换出换入次数页面锁定:用于描述必须常驻内存的操作系统的关键部分或时间关键的应用程序。实现方法:在页表中添加锁定标志位,确保不被换出二、局部页面置换算法1. 最优页面置换算法基本思路:当一个中断产生,对保存于内存中的每一个逻辑页面,计算距离它下一次访问之前,还需要等待多长时间,从中选择等待时间最长的页置换适用场景:理想状态,因为需要预先知晓未来的页面访问情况。2.原创 2021-06-29 00:11:59 · 591 阅读 · 1 评论 -
操作系统-内存篇3(虚拟内存概念)
一、虚拟内存的起因获得更大、更快、更便宜,好用不易失的存储器二、覆盖技术目标:在较小的可用内存中运行较大的程序,常用于多道程序设计,与分区存储管理配合使用原理:将程序按照自身逻辑结构,划分为若干个功能独立的程序模块,那些不会同时执行的模块可共享同一块内存区域,按时间先后来运行 常驻内存模块:必要的代码和数据 可选模块:不常用功能存放于外存中,需要时才装入内存 不存在调用关系的模块不必同时装入内存中,从而可以相互覆盖,即这些模块共用一个分区例子:三、交换技术四、原创 2021-06-27 17:04:12 · 332 阅读 · 0 评论 -
操作系统-内存篇2(非连续内存分配)
一、非连续内存分配概述连续内存分配的缺点:分配给一个程序的物理内存是连续的 内存利用率低 有内、外碎片问题非连续分配的优点:可以更好的内存利用和管理 允许共享代码与数据 支持动态加载和动态链接非连续分配的缺点:如何建立虚拟地址和物理地址之间的转换(硬件方案:分段/分页)分段需要考虑的问题:分段后,地址空间如何寻址 如何实现分段寻址方案二、分段优点:更好的分离和共享应用程序运行时,使用的是连续的逻辑地址,通过分段后,可以映射为分散的地址空间,并分离起来,有利于共享原创 2021-06-26 20:56:19 · 562 阅读 · 1 评论 -
操作系统-内存篇1(地址空间及连续内存分配)
一、计算机体系结构及内存分层体系二、地址空间及地址生成三、连续内存分配原创 2021-06-25 23:59:59 · 1121 阅读 · 0 评论 -
操作系统-启动、中断、异常和系统调用
一、启动1.计算机体系结构概述计算机组成: cpu,内存,io操作系统存放位置: 硬盘BIOS:基本I/O处理系统,计算机启动时加载的第一个程序,在内存中,有一部分空间被BIOS占用,加电时会从特定地址执行,执行自检,将bootloader从硬盘中加载到内存中去(一般bootloader在磁盘第一个扇区)Bootloader: 将OS从硬盘中加载到内存(找到操作系统硬盘所在扇区,将操作系统读到内存中去)二、 中断、异常和系统调用1. 背景2. 中断、...原创 2021-06-25 22:44:28 · 277 阅读 · 0 评论 -
操作系统 - 进程篇4(进程同步-信号量与管程todo)
一、背景确保同步,需要高层次的编程抽象(锁),从底层硬件支持编译二、信号量1. 信号量抽象数据类型一个整型,两个原子操作:P():sem减1,如果 sem<0,等待,否则继续 V():sem加1,如果sem<=0,唤醒一个等待的P2. 概述a. 特点特点:信号量是整数,P()能阻塞,V()不会阻塞信号量是被保护的变量:初始化完成后,唯一改变一个信号量的方法是通过P()和V() 操作必须是原子的信号量可以是公平的:如果V()被无限频繁调.原创 2021-07-10 15:46:44 · 210 阅读 · 0 评论