自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程调度 续

实时调度定义:正确性依赖于时间和功能两方面的一种操作系统性能指标:时间约束的及时性 速度和平均性能相对不重要主要特征:时间约束的可预测性强实时系统:需要再保证时间内完成重要的任务,必须完成弱实时系统:要求重要的进程的优先级更高,尽量完成,并非必须多处理器多处理器的cpu调度更加复杂多个相同的单处理器组成一个多处理器优点:负载共享对称多处理器(SMP)每个处理器运行自己的调度程序 需要在调度程序中同步优先级反转背景:可以发生在任何基于优先级的可抢占的调度机制中

2021-08-19 15:19:26 124

原创 进程调度1

文章目录进程调度背景调度原则调度算法FCFS短任务SPN最高响应比优先算法Round robin 时间片轮转多级反馈对队列FFS公平共享进程调度背景上下文切换 cpu调度什么时候调度? 进程状态变化时会发生调度内核运行调度程序的条件一个进程从运行状态切换到等待状态一个进程被终结了不可抢占调度程序必须等待事件结束可以抢占调度程序在中断被响应后执行当前进程从运行切换到就绪,或者一个进程从等待切换到就绪当前运行的进程可以被换出调度原则程序执行模型

2021-08-16 18:03:46 147

原创 线程 线程

文章目录线程概述线程的实现线程概述为了提升性能 需要提出一种实体:实体之间可以并发执行可以共享相同的地址空间定义:进程当中的一条执行流程重看进程:进程就是管理资源的 通过线程来执行可以说 进程由资源管理和线程组成一个进程存在多个线程 各个线程共享进程提供的资源线程的组织 :独有:TCB (PC 堆栈 寄存器)线程共享:代码段 数据段线程的优点:一个进程可以同时存在多个线程各个线程可以并发执行各个线程之间可以共享地址空间和文件资源缺点:一个线

2021-08-15 16:34:05 143

原创 进程 进程

文章目录进程概述PCB进程的生命期进程状态变化模型进程挂起进程概述进程的定义:正在运行的程序一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。为什么要有进程?cpu能力越来越强,内存越来越多,此时程序来表示在内存中运行的程序不合适,会出现一个程序有多个执行过程。进程组成:程序代码数据程序计数器,指示下一条将运行的指令一组通用的寄存器的当前值,堆栈一堆系统资源(如打开的文件)进程包含了正在运行的一个程序的所有状态信息进程与程序的联系:程序

2021-08-13 18:26:33 222

原创 页面置换算法

文章目录局部置换算法最优页面置换算法先进先出算法(first-in first-out,FIFO)最近最久未使用算法(LRU)时钟页面置换算法二次机会法最不常使用算法(LFU)belady现象全局页面置换算法工作集模型工作集置换算法缺页率页面置换算法抖动问题局部置换算法功能:当缺页中断发生时,需要调入新的页面而内存页面已满时,选择内存当中哪个页面被置换目标:尽可能的减少页面的换进换出次数。页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键的应用程序。实现

2021-08-12 17:30:56 117

原创 虚拟内存2

文章目录虚拟内存管理技术概述缺页中断后备存储虚拟内存管理技术概述问题:在内存不够时,可以采用覆盖技术和交换技术。但都有缺点 。覆盖:增加程序员负担 交换:增加处理器的开销解决之道:虚拟内存管理技术—虚存技术目标:像覆盖技术一样,不是把程序的所有内容都放在内存中,但做的更好 ,由操作系统来完成,无需程序员干涉像交换技术一样 实现进程在内存外存之间的交换,但做的更好,只对进程的部分内容进行交换程序局部性原理:指程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地

2021-08-10 18:08:41 183

原创 非连续2 虚拟内存1

文章目录页表页表概述TLB快表多级页表反向页表虚拟内存的起因覆盖交换覆盖与交换的联系页表页表概述Resident bit代表该页帧是否存在在物理内存 访问异常由操作系统处理分页机制问题访问一个内存单元需要2次内存访问(时间)页表可能很大(空间)解决缓存cache(时间)间接访问(多级页表)(空间)TLB快表概念:缓存近期访问的页帧转换表项使用关联内存实现,具有快速访问性能如果TLB命中,物理也好可以很快被获取如果未命中 对应的表项被更新到TLB中

2021-08-09 17:08:49 80

原创 连续与非连续内存分配1

文章目录连续内存分配简单内存管理压缩式(紧致)和交换式内存管理非连续内存分配为什么要用非连续?建立虚拟地址和物理地址转换连续内存分配简单内存管理内存碎片:不能被利用的空间内存外部碎片:在分配单元间的未使用内存内部碎片:在分配单元中的未使用内存,已经分配,无法使用分区的动态分配简单内存管理:给需要运行的程序分配一个连续的内存区间算法:首次适配:基本原理:简单实现: 寻找第一个适合的空闲块进行分配需求:1. 按地址排序的空闲块链表2. 分配需要寻找一个合适的分区3.

2021-08-08 17:09:13 81

原创 体系结构 地址空间

文章目录计算机的体系结构地址空间 地址生成计算机的体系结构计算机基本硬件结构 :cpu 内存 外设内存层次结构:寄存器 ->cache->主存->磁盘 速度越来越慢 容量越来越大OS怎么管理虚拟内存,需要完成的事情:1.抽象:逻辑地址空间2.保护:独立地址空间(不同程序的地址空间需要隔离)3.共享:访问相同内存4.虚拟化:更多的地址空间(将最需要的数据放在内存中 不需要的放在disk,此过程对应用程序透明)逻辑地址–(MMU)------->物理地址MMU(内存

2021-07-23 13:37:37 75

原创 力扣 203.移除链表元素 链表 虚拟头结点

203.移除链表元素给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]来源:力扣(LeetCode)链接:https://leetcode-cn.com/

2021-07-22 23:22:13 201 1

原创 操作系统 启动 中断 异常 系统调用

文章目录操作系统的启动中断和异常处理机制操作系统的启动DISK:存放os,bootloader程序bootloader:一段执行程序,负责将os放入内存,硬盘第一个扇区,512字节BIOS:基本IO处理系统,负责检测各种外设是否正常POST:加电自检 寻找显卡和执行BIOS 初始化检查启动过程:在计算机开机后,首先从BIOS首地址执行,在这个过程中会完成POST,并且将bootloader从磁盘的引导扇区加载到0x7c00,此时cpu控制权交给bootloader,它 将os的代码和数据从dis

2021-07-21 20:09:30 234

原创 力扣 59.螺旋矩阵II 54.螺旋矩阵 数组练习 模拟

59.螺旋矩阵II给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/spiral-matrix-ii思路:从最外圈开始逐渐向里圈赋值,并且每次从左上角开始顺时针按照数字递增赋值一圈,代码

2021-07-20 23:30:26 155 1

原创 力扣 209长度最小的子数组 904.水果成篮 数组练习 滑动窗口

文章目录209.长度最小的子数组209.长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4,

2021-07-17 21:32:22 112

原创 力扣 27.移除元素 26.删除有序数组中的重复项 283.移动零 数组练习 双指针法

文章目录27.移除元素26.删除有序数组中的重复项283.移动零27.移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element思路:快指针i寻找不是val的元素

2021-07-16 20:04:43 122 1

原创 力扣 704.二分查找 35.搜索插入位置34.查找元素位置 数组练习

文章目录二分查找搜索插入位置查找元素的第一个和最后一个位置二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不

2021-07-15 15:42:48 90

原创 力扣 69. x的平方根 367.有效的完全平方数 数组练习

69.x的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx解析:返回值在0到x之间,有序,使用二分法,left与right

2021-07-15 15:05:51 138 1

原创 企业编程指南1

减少编程错误安全编码与未定义行为表达式与变量函数与类安全编码与未定义行为1.不能使用超出边界的指针或者数组下标(缓冲区溢出)2.不能返回指向局部变量的指针,悬空指针3.整形运算时确保有符号数的运算不溢出4 类型转换导致溢出问题表示数值用signed char 或unsigned char无符号数与有符号数不能混用 不得不用时 显示指定类型转换原因:(有符号)char在转换成unsigned int有两种路径char int unsigned intchar unsigned cha

2021-07-05 00:07:34 302

空空如也

空空如也

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

TA关注的人

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