自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (5)
  • 收藏
  • 关注

原创 701. 二叉搜索树中的插入操作

链接:701. 二叉搜索树中的插入操作题解:/** * * Definition for a binary tree node. * * struct TreeNode { * * int val; * * TreeNode *left; * * TreeNode *right; * * TreeNode() : val(0), left(nullptr), right(nullptr) {} * ..

2020-09-30 23:53:21 2288

原创 进程的描述和进程的创建

进程控制块PCB——task_struct为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结构很庞大 Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪状态和运行状态都是TASK_RUNNING,为什么呢? 进程的标示pid 所有进程链表struct list_head tasks; 内核的双向循环链表的实现方法 - 一个更简略的双向循环链表

2020-09-30 14:18:23 165

原创 进程的切换和系统的一般执行过程

进程的调度时机与进程的切换操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已。对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键。进程调度的时机 中断处理过程(包括时钟中断、I/O中断、系统调用和异常)中,直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule(); 内核线程可以直接调用schedule()进行进程切换,也可以在中断处理过程

2020-09-30 13:47:48 251

原创 哈工大-基于内核栈切换的进程切换

1. 课程说明难度系数:★★★★☆本实验是操作系统之进程与线程 - 网易云课堂的配套实验,推荐大家进行实验之前先学习相关课程:L10 用户级线程 L11 内核级线程 L12 核心级线程实现实例 L13 操作系统的那棵树Tips:点击上方文字中的超链接或者输入https://mooc.study.163.com/course/1000002008#/info进入理论课程的学习。 如果网易云上的课程无法查看,也可以看 Bilibili 上的操作系统哈尔滨工业大学李治军老师。...

2020-09-30 13:19:26 780

原创 Linux内核分析-孟宁

1.https://blog.csdn.net/fieldoffier/category_2922581.html2.https://blog.csdn.net/sunyeyi/category_2920883.html

2020-09-29 22:12:08 462

转载 《Linux内核分析》(二)——从一个简单Linux内核分析进程切换原理

转载:https://blog.csdn.net/FIELDOFFIER/article/details/44280717《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000”实验环境:c+Linux64位 (32位系统可能结果会不同)依照学术诚信条款,我保证此回答为本人原创,所有回答中引用的外部材料已经做了出处标记。源代码以及运行环境搭建请参考mykernel,其中提供了一个简单的Linux内核源代码,本文主要分析.

2020-09-29 18:54:34 245

转载 2020-09-29

用mykernel 2.0虚拟一个x86-64的CPU硬件平台转载:https://mp.weixin.qq.com/s/SzpN1BNty5aPDZhNdCO5yA一个操作系统那么复杂,它本质上是怎么工作的呢?接下来要做一个有趣的实验。“天下大事必作于细,天下难事必作于易”。首先搭建一个虚拟的平台,虚拟一个x86-64的CPU,然后使用Linux内核源代码把虚拟CPU初始化配置好时钟中断和程序入口,就可以开始编写自己的操作系统内核了。为了便于理解实验内容,这里简要介绍中断的基本概念。中断最

2020-09-29 17:07:09 189

原创 501.二叉搜索树中的众数

链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/题解:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/solution/er-cha-shu-zhong-xu-bian-li-de-liang-chong-fang-sh/ List<Integer> mList = new ArrayList<..

2020-09-27 22:44:38 85

原创 哈工大-系统调用

系统调用1. 课程说明本实验是操作系统之基础 - 网易云课堂的配套实验,推荐大家进行实验之前先学习相关课程:L4 操作系统接口 L5 系统调用的实现Tips:点击上方文字中的超链接或者输入https://mooc.study.163.com/course/1000002004#/info进入理论课程的学习。 如果网易云上的课程无法查看,也可以看 Bilibili 上的操作系统哈尔滨工业大学李治军老师。2. 实验目的建立对系统调用接口的深入认识; 掌握系统调用的基本过程...

2020-09-24 20:54:07 578

原创 哈工大-操作系统的引导

操作系统的引导1. 课程说明本实验是操作系统之基础 - 网易云课堂课程的配套实验,推荐大家进行实验之前先学习相关课程:L2 开始揭开钢琴的盖子 L3 操作系统启动Tips:点击上方文字中的超链接或者输入https://mooc.study.163.com/course/1000002004#/info进入理论课程的学习。 如果网易云上的课程无法查看,也可以看 Bilibili 上的操作系统哈尔滨工业大学李治军老师。2. 实验目的熟悉 hit-oslab 实验环境; 建...

2020-09-23 14:39:37 1816 1

原创 哈工大操作系统

实验指导:https://hoverwinter.gitbooks.io/hit-oslab-manual/content/index.html实验环境:https://github.com/NIGHTFIGHTING/hit-oslab,主要是为了安装gcc3.4如果报错安装:dev86.x86_64 : A real mode 80x86 assembler and linker,为了安装as86,ld86...

2020-09-22 19:55:02 1312

原创 226. 翻转二叉树

链接:https://leetcode-cn.com/problems/invert-binary-tree/题解:https://leetcode-cn.com/problems/invert-binary-tree/solution/shou-hua-tu-jie-san-chong-xie-fa-di-gui-liang-chon//** * * Definition for a binary tree node. * * struct TreeNode { * * ..

2020-09-16 23:37:49 84

转载 清华大学操作系统公开课笔记(向勇、陈渝)

转载:https://zhuanlan.zhihu.com/p/150510828第一章:概述内核功能:物理内存管理 | 虚拟内存管理 | 文件系统管理 | 中断处理和IO设备驱动 (底层硬件)内核特征并发(指一段时间内多个程序运行;而并行是指一个时间点上多个程序运行,要求多个CPU):计算机系统中同时存在多个运行的程序,需要OS管理和调度共享“同时”访问或互斥共享虚拟利用多道程序设计技术,让每一个用户都觉得有一个计算机专门为他服务异步程序的执行不是一步到底的,而是走走停...

2020-09-16 11:41:43 756

原创 37. 解数独

链接:https://leetcode-cn.com/problems/sudoku-solver/题解:1.把没有数字的位置,使用vector记录下来2.每个数字现在已经存在的行rows,列cols,对角线boxes都记录下来3.dfs每一个数字,到vector的size结束class Solution {private: bool line[9][9]; bool column[9][9]; bool block[3][3][9]; ...

2020-09-16 10:43:07 115

原创 11-7-用户线程

2020-09-15 20:10:36 89

原创 12-2-进程创建

2020-09-15 19:21:28 68

原创 12-1-进程切换

2020-09-15 19:12:17 83

原创 11-6-线程的概念

'

2020-09-15 17:27:34 80

原创 11-3-进程状态

2020-09-15 17:22:39 73

原创 11-2-进程控制块

2020-09-15 16:23:43 76

原创 11-1进程的概念

2020-09-15 16:15:09 76

原创 637. 二叉树的层平均值

链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/题解:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/solution/er-cha-shu-de-ceng-ping-jun-zhi-by-leetcode-soluti//** * * Definition for a binary tree node. * ..

2020-09-12 22:23:30 103

原创 多线程模型

一、什么是线程1.在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”2.一切进程至少都有一个执行线二、进程与线程1.进程是资源竞争的基本单位2.线程是程序执行的最小单位3.线程共享进程数据,但也拥有自己的一部分数据 线程ID,一组寄存器,栈,errno,信号状态,优先级三、fork和创建新线程的区别1.当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它...

2020-09-12 12:27:01 354

原创 216. 组合总和 III

链接:https://leetcode-cn.com/problems/combination-sum-iii/题解:class Solution { public: vector<vector<int>> combinationSum3(int k, int n) { vector<int> path; vector<vector<int>> result; ..

2020-09-11 23:52:43 68

转载 brpc线程模型学习

转载:https://blog.csdn.net/okiwilldoit/article/details/82755526bthread是brpc使用的M:N线程库,目的是在提高程序的并发度的同时,降低编码难度,并在核数日益增多的CPU上提供更好的scalability和cache locality。”M:N“是指M个bthread会映射至N个pthread,一般M远大于N。由于linux当下的pthread实现(NPTL)是1:1的,M个bthread也相当于映射至N个LWP。bthread的

2020-09-09 22:06:44 772

转载 协程分析之 context 上下文切换

转载:https://juejin.im/entry/6844903448849154061协程现在已经不是个新东西了,很多语言都提供了原生支持,也有很多开源的库也提供了协程支持。最近为了要给tbox增加协程,特地研究了下各大开源协程库的实现,例如:libtask, libmill, boost, libco, libgo等等。他们都属于stackfull协程,每个协程有完整的私有堆栈,里面的核心就是上下文切换(context),而stackless的协程,比较出名的有protothreads,

2020-09-08 20:42:45 1032

转载 多核环境下pthread调度执行bthread的过程

调度执行bthread的主要数据结构一个pthread调度执行私有TaskGroup的任务队列中各个bthread的过程调度执行bthread的主要数据结构在一个线上环境系统中,会产生大量的bthread,系统的cpu核数有限,如何让大量的bthread在有限的cpu核心上得到充分调度执行,实现全局的最大并发主要是由TaskGroup对象、TaskControl对象实现的。每一个TaskGroup对象是系统线程pthread的线程私有对象,它内部包含有任务队列,并控制pthread如何执行任务队

2020-09-08 14:12:22 1480

转载 ucontext-人人都可以实现的简单协程库

1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。首先我们可以看看有哪些语言已经具备协程语义:比较重量级的有C#、erlang、golang* 轻量级有python、lua、javascript、ruby 还有函数式的scala、scheme等。c/c++不直接支持协程语义,但有不少开源的协程库,如:Protothreads:一个“蝇量级” C 语言协程库libco:来自腾讯的开源协程库libco介绍,官网coroutine:云风的一个C语言同步协程库,

2020-09-08 12:28:35 568

转载 bthead基础

线程执行协程与线程调用函数的不同协程的原理与实现方式系统线程执行多个协程时的内存布局变化过程brpc的bthread任务定义线程执行协程与线程调用函数的不同一个pthread系统线程执行一个函数时,需要在pthread的线程栈上为函数创建栈帧,函数的形式参数和局部变量都分配在栈帧内。函数执行完毕后,按逆序销毁函数局部变量,再销毁栈帧。假设有一个线程A开始执行下面的foo函数:void bar(int m) { // 执行点1 // ...}void foo(int a, int b

2020-09-08 10:44:02 367

原创 107. 二叉树的层次遍历 II

链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/题解:/** * * Definition for a binary tree node. * * struct TreeNode { * * int val; * * TreeNode *left; * * TreeNode *right; * * TreeN..

2020-09-07 14:29:53 79

原创 brpc学习:bvar

一.介绍https://www.bookstack.cn/read/brpc-0.9.7-zh/a070abbea9bcb45d.mdbvar是多线程环境下的计数器类库,方便记录和查看用户程序中的各类数值,它利用了thread local存储减少了cache bouncing,相比UbMonitor(百度内的老计数器库)几乎不会给程序增加性能开销,也快于竞争频繁的原子操作。brpc集成了bvar,http接口下的/vars可查看所有曝光的bvar,/vars/VARNAME可查阅某个bvar,在

2020-09-05 22:24:38 620

原创 brpc搭建、编译和使用

前面介绍了brpc的理解,这里给出brpc官方的搭建过程,以及提供的测试用例,对brpc的使用有一个宏观的理解。PS:这里必须再次称赞百度工程师门,brpc开源的文档非常的丰富,仅仅是看文档都受益匪浅,同时提供了各个系统,各个版本的安装编译过程,安装编译文档可以通过以下链接直接查看:https://github.com/brpc/brpc/blob/master/docs/cn/getting_started.md这里给出本人成功安装编译的过程,供大家参考。前期准备:brpc需要依赖三个开源库

2020-09-04 20:31:08 3525 2

原创 51. N 皇后

链接:51. N 皇后题解:这个问题很经典了,简单解释一下:给你一个 N×N 的棋盘,让你放置 N 个皇后,使得它们不能互相攻击。PS:皇后可以攻击同一行、同一列、左上左下右上右下四个方向的任意单位。这个问题本质上跟全排列问题差不多,决策树的每一层表示棋盘上的每一行;每个节点可以做出的选择是,在该行的任意一列放置一个皇后。函数 backtrack 依然像个在决策树上游走的指针,通过 row 和 col 就可以表示函数遍历到的位置,通过 isValid 函数可以将不符合条件的情况剪...

2020-09-03 23:21:28 76

原创 841. 钥匙和房间

链接:841. 钥匙和房间题解:class Solution { public: bool canVisitAllRooms(vector<vector<int>>& rooms) { int path_count = 0; int begin = 0; vector<bool> visited(rooms.size(), false); dfs(rooms,...

2020-09-01 09:21:41 96

1.6 Golang在阿里巴巴调度系统Sigma中的实践.pdf

1.6 Golang在阿里巴巴调度系统Sigma中的实践。

2020-04-19

栈和队列.rar

栈队列,两个栈实现队列,两个队列实现栈,栈和队列的一些简单应用

2016-01-14

深度优先搜索

哈理工几道深度优先搜索例题,泉水下山

2015-08-15

排序树 变成双向链表

排序树 变成双向链表排序树

2014-09-14

排序树 双向 循环链表

排序树 双向 循环链表

2014-08-31

空空如也

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

TA关注的人

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