笔记
蒙奇·D·路飞·宝亮
我可是要成为海贼王的男人
展开
-
一个有意思的问题dev 运行 Cpp 的方式
今天我室友问了我一个问题,如何关闭一个正在Windows上运行的有没有任何图形界面的问题。然后我叫他打开任务管理器,按照进程的名字查找,找到后直接结束进程就行了。随后我又想原理,任何程序在操作系统上运行都是以一个进程的方式运行的,你只要有一个可以管理进程的工具你就可以杀死任何非系统的核心进程,除非这是个病毒(我这句话很不严谨,勿喷,参考就好)。这个软件之所以没有任何界面,是因为没有调用操作系统的GUI接口而已。但是仍然改变不了它是一个进程的本质。不知道为什么,我突然之间想到一个问题,为什么我用 dev原创 2022-04-24 00:46:44 · 727 阅读 · 0 评论 -
二分查找-33. 搜索旋转排序数组-一句话点透
题目链接整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为[nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …,nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为[4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一原创 2022-01-07 00:04:24 · 81 阅读 · 0 评论 -
反射调用的缺点和优化
缺点反射因为反射基本上是以解释执行的方式运行的,所以性能非常慢。优化Method、 Field 和 Constructor 对象都有 setAccessible() 方法,setAccessible 的作用是启动和禁用访问安全检查的开关,传递的参数为 true 表示关闭检查。...原创 2022-01-04 16:53:31 · 298 阅读 · 0 评论 -
信号量机制解决进程互斥问题
整形信号量机制用户可以对操作系统提供的一对原语来对整形信号量进行操作wait()和signal(),这个信号量只能进行初始化操作、P操作、V操作,不是一般的整形原语是不能被中断的就是用来解决双标志法不能一气呵成的缺点缺点: 还是不能解决让权等待的问题记录型信号量机制优点: 解决了让权等待的问题...原创 2021-12-23 19:58:03 · 280 阅读 · 0 评论 -
进程互斥的硬件实现方法
中断屏蔽方法就是在一个进程开始访问临界区到结束访问的时间段内都不允许中断,就是不允许进程切换。优点: 简单高效缺点: 不适用于多处理机;只适用于操作系统的内核进程,不适用于用户进程(因为开关中断指令只能运行在内核态,如果能让用户随意使用会很危险)TestAndSet 指令或者TestAndSetLock(TSL指令)用硬件实现,执行的过程中只能一气呵成,不能中断。这个指令大致做的就是给临界区加锁(无论之前是否加锁),然后返回加锁前的加锁状态。优点: 实现简单, 适用于多处理机环境缺点: 不满足原创 2021-12-23 19:05:32 · 381 阅读 · 0 评论 -
进程互斥的软件实现方法
进程互斥的软件实现方法1. 单标志法一个进程通过改变标志来把临界区让给另一个进程,如果进程没有交让就死了。另一个进程就永远卡死了。2. 多标志先检查法每一个标志对应一个进程,当一个进程想要使用临界区的时候就先判断除了自己的标志之外的标志是否为true,为true就一直循环知道循环退出,判断完所有其他标志后,就将自己的标志设为true,然后再访问临界区,访问完临界区之后就将自己的标志设为false。缺点: 在最后一次循环结束的瞬间,进程时间片到了,可能有另外一个进程刚好也想原创 2021-12-23 18:32:14 · 531 阅读 · 0 评论 -
对于进程同步和异步的理解
多进程并发执行具有异步的特性进程异步就是指一个以上的进程在并发执行时具有的异步特型,就比如说两个进程之间指令的执行顺序是不确定的,具有很强的随机性。举个例子现在有两个并发执行的进程 A 和 B, 各自都有n条指令需要执行。然而,我的CPU很垃圾,只能在同一时刻执行一条语句,就产生了如下几个问题:是先执行A进程的第一条语句还是B进程的第一条语句?显然这是未知的。假如先执行的是A进程的第一条语句,那我要执行到第几条语句才停下来再去执行B的语句呢?(肯定不能让A进程执行完所有的语句再转去执行B进原创 2021-12-19 20:48:59 · 1595 阅读 · 0 评论 -
操作系统运行机制和体系结构笔记
操作系统的运行机制在设计操作系统为了方便安全问题的设计将 CPU 指令分为两种,特权指令 和 非特权指令。在操作系统管辖下的CPU又分为两种状态,核心态和用户态,特权指令只能在核心态下执行,所以当需要执行特权指令的时候操作系统需要将CPU由 用户态 切换为 核心态 ,这里会有比较大的开销什么是内核?内核其实是指计算机上 最底层的软件,实现操作系统内核功能的那些程序就称为 内核程序, 一般是一些非常接近硬件的程序。所谓的微内核就是把一些内核程序从内核中移除,减少内核的规模,而这些可以被移除的内核程序原创 2021-12-15 15:16:43 · 378 阅读 · 0 评论 -
二分法遍历技巧,再也不用纠结
二分法查找技巧,再也不用纠结头疼了原创 2021-12-14 23:04:13 · 4047 阅读 · 0 评论 -
Java反射入门
Java反射的最基本用法原创 2021-12-12 15:56:10 · 339 阅读 · 0 评论 -
贪心算法实例 —— 事情安排
贪心算法实例 —— 事情安排问题:本关任务:小张最近很忙,记事本里有n件事情等待处理,每件事处理完毕后,能得到不同的奖励(或报酬),而且都有一个截止日。一件事处理需要一整天时间,并且小张不能同时干其他事情。请你替小张安排一个事情处理的时间表,争取获得最大的奖励(或报酬)。测试输入:第一行输入整数n,表示n个事情。随后输入n行,每行包括一个事情的截止日(不大于n)和处理收益。测试输出:输出最大的总收益。前言:这是老师布置的一个作业题,我想了很久,没想出来,去网上一搜,找到的代码既没思路又没注释,花原创 2020-10-31 16:53:24 · 2300 阅读 · 0 评论 -
Apple Tree树状数组、前向星、DFS序(C语言)
Apple Tree树状数组、前向星、DFS序(C语言)题目输入值第一行包含一个整数Ñ(Ñ ≤100,000),这是树中的叉的数量。接下来的N -1行分别包含两个整数u和v,这意味着fork u和fork v通过分支连接。下一行包含的整数中号(中号≤100,000)。以下中号行,每行包含一个消息,该消息或者是“ Ç X ”,这意味着苹果上叉存在X已经变了。例如,如果叉子上有一个苹果,则卡卡(Kaka)摘下;否则,空叉上会长出一个新苹果。或“ Q x ”,表示查询叉子x上方子树中的苹果数量,原创 2020-11-26 23:48:06 · 180 阅读 · 0 评论 -
C语言递归函数——汉诺塔问题笔记
C语言递归函数——汉诺塔问题笔记学C的时候老师根本没讲过递归,当时自己也没把它当回事,但是递归在算法中的地位实在太重要了。于是翻了翻C课本上的递归,书上讲的不多,但是一个经典的汉诺塔问题就让我伤透了脑筋。看了七八个钟头还是一头雾水。嘿嘿,先把它抄下来,想起来的时候再来看看。三个塔,n个盘子,从塔A移动到塔B,只能大的在下小的在上,每次只能移动一个。书上这样解释 :编程思路: 这是一个使用...原创 2021-12-11 22:06:00 · 163 阅读 · 0 评论