- 博客(23)
- 收藏
- 关注
原创 EPnP算法学习笔记
1.Overview1.1 算法输入:2D-3D关联点对,具体数据结构形式如下所示:pair<p2d,p3d> pair<p2d, p3d>pair<p2d,p3d>1.2 算法输出:旋转矩阵R(3x3),平移向量T(3x1),旋转矩阵R表示当前坐标系与目标坐标系之间的旋转,平移向量T表示当前坐标系与目标坐标系之间的平移。在下文中称当前坐标系为世界坐标系,称坐标系为相机坐标系。2. 符号说明n个3D点在世界坐标系中的坐标,其坐标形式为非齐次坐标piw=
2021-06-28 20:49:20
1068
5
原创 操作系统-连续分配管理方式
连续分配方式是指为一个用户程序分配一个连续的内存空间。1、单一连续分配内存在此方式下分为系统区和用户区,系统区仅在操作系统使用,通常在低地址部分;用户区是为用户提供的、出系统区之外的内存空间。这种方式无需进行内存保护。因为内存中永远只有一道程序,因此肯定不会越界和干酪其他程序。优点:简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持。缺点:只能用于单用户、单任务的操作系统中,有内部...
2020-02-20 00:28:19
1009
原创 操作系统-覆盖与交换
覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法。1、覆盖覆盖的基本思想:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可把用户空间分成固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按照调用关系分段。首先将这些即将访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中的原有的段。覆盖技术的特点:打破了必须将一个进程...
2020-02-19 22:08:12
713
原创 操作系统-程序的装入和链接
创建进程首先要将程序和数据装入内存。将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤:1、编译由编译程序将用户源代码编译成若干目标模块。2、链接由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块。程序的链接方式有以下三种方式:静态链接:在程序运行之前,先将各目标模块及他们所需的库函数链接成一个完整的可执行程序,以后不在拆开。装入时动态链接...
2020-02-19 21:41:19
1990
原创 操作系统-银行家算法
银行家算法是最著名的死锁避免算法,其思想是:把操作系统视为银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。数据结构描述(1)可利用资源向量 Available含有m个元素的数组,其中每个元素一类可用的资源数目。比如Available[j] = k,表示系统中现有可用的j类资源有k个。(2)最大需求矩阵Maxn*m矩阵,定义系统中n个进程...
2020-02-07 22:16:30
3734
1
原创 操作系统-死锁
1、死锁的定义在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率,并提高了了系统的处理能力。然而,多进程的并发执行也带来了新的问题——死锁。所谓死锁,是指多个进程竞争资源而造成的一种僵局(互相等待),若无外力,这些进程都无法向前推进。具体例子可以参照哲学家进餐问题。2、死锁产生的原因(1)系统资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的要求,使得进程...
2020-02-07 00:28:43
181
原创 操作系统-经典同步问题
1、生产者-消费者问题1.1 问题描述一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放进缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或一个消费者从中取出消息。1.2 问题分析(1)关系分析生产者和消费者对缓冲区的访问是互斥关系,生产者和消费者又是一个相...
2020-02-05 22:20:04
565
原创 操作系统-信号量
信号量信号量机制是一种功能较强的机制,可用于解决互斥和同步的问题,它只能被两个标准的原语wait(S)和signal(S)访问,也可以记为“P操作”和“V操作”。原语:指完成某种功能且不被分割,不被中断执行的操作序列,通常可由硬件来实现。例如TestAndSet和Swap指令就是ongoing硬件实现的原子操作。原语功能的不被中断执行特性在单处理机上可由屏蔽中断方法来实现。1、整型信息量整...
2020-02-04 21:26:15
1371
原创 操作系统-实现临界区互斥的基本办法
1、软件实现方法算法一:单标志法(违背空闲让进)设两个进程P0和P1,以及一个标志量(turn)。turn的初始化turn = 0;规定turn = 0 时,允许P0访问临界区;turn = 1 时,允许P1访问临界区P0进程//p0进程 while(turn != 0);//进入区 临界区代码段 //临界区turn =...
2020-02-04 17:17:08
4587
原创 操作系统-进程控制原语
为了实现进程控制,在操作系统内核中,有一组程序专门用于完成对进程的控制,这些原语至少需要包括创建新进程原语,阻塞进程原语,唤醒进程原语,终止进程原语,系统服务对用户开放,即用户可以通过相应的接口来使用它们。1、进程创建原语从PCB集合中申请一个空白的PCB,将调用者参数(如进程外部标识符,初始CPU状态,进程优先数,初始内存及申请资源清单)添入该PCB,设置记账数据。置新进程为“就绪”态。2...
2020-02-02 15:34:26
10450
原创 操作系统-什么是多线程?多线程与多任务有什么区别?
多线程是指:在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。多线程和多任务的区别:多任务是针对操作系统而言的,代表操作系统可以同时执行的程序个数;多线程是针对一个程序而言的,代表一个程序可以同时执行的线程的个数,每个线程完成不同的任务。...
2020-02-02 14:49:19
3082
原创 操作系统-为什么进程之间的通信必须借助操作系统内核功能?
原因每个进程有自己独立地地址空间。在操作系统和硬件的地址保护机制下,进程无法访问其他进程的地址空间,所以必须借助于操作系统的系统调用函数实现进程之间的通信。进程通信的主要方式(1)共享内存区。通过系统调用创建共享内存区。多个进程可以(通过系统调用)连接同一个共享内存区,通过访问共享内存区实现进程之间的数据交换。使用共享内存区时需要利用信息量解决同步互斥问题。(2)消息传递。通过发送/接收消...
2020-02-02 14:40:46
2823
原创 操作系统-父进程创建子进程和主程序调用子程序有何不同?
父进程创建子进程后,父进程与子进程同时执行(并发)。主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序开始执行。我们可以这么理解:父进程运行的程序,创建了子进程,此时父进程和进程并发执行,是两个进程;主程序调用子程序后,主程序暂停,子程序开始执行,它们还是一个进程。...
2020-02-02 14:00:19
3301
原创 操作系统-进程和程序之间的关系(一对一,一对多,多对一,多对多)
进程和程序之间可以形成一对一,一对多,多对一,多对多的关系,分别举例说明在什么情况下会形成这样的关系?进程的定义从不同的角度进程可以有不同的定义,比较典型的定义有:(1)进程是程序的一次执行过程。(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。(3)进程是具有独立功能的程序在一个...
2020-02-02 11:23:03
11713
原创 操作系统-进程甘特图画法
我们在操作系统中常常会碰到CPU和输入输出等设备调度的题目,需要画出甘特图才能比较直观地看出每个进程不同进程之间的时序关系。这里分享一下甘特图的作图技巧,这种题目分两种,分别是可抢占优先权调度和不可抢占优先权调度。可抢占优先权调度这种情况非常简单,我们只需要从优先级最高的进程开始画,然后画优先级次高...
2020-02-01 00:43:03
22182
5
原创 概率论有关定理总结(持续更新)
1、加法公式前提:如果a, b事件互斥,即P(ab) = 0, 则P(a+b)=P(a)+P(b) P(a + b) = P(a) + P(b)P(a+b)=P(a)+P(b)2、条件概率公式前提:无前提,任意两个事件a,bP(b∣a)=P(ab)P(a) P(b|a) = \frac{P(ab)}{P(a)} P(b∣a)=P(a)P(ab)3、乘法公式前提:...
2019-05-31 11:03:20
7255
原创 2019腾讯春招常规批笔试编程题反思
本周打了腾讯笔试,本来以为笔试的题目应该不难,以为有ACM基础手撕编程题应该很轻松,但是事实证明自己还是太菜了。题目暂时还做不了,但是有两张图片显然一拿到手,肯定要暴力打表,找规律。然后一顿啪啪啪,就有下面这段打表代码,想着笔试数据都很水,腾讯提前批笔试的时候,最后一题O(n *n!)复杂度都能过,大力出奇迹啊,一交……通过50%。#include<bits/stdc++.h&g...
2019-04-07 11:50:07
990
原创 二分图知识点总结
二分图知识点1.最小点覆盖1.1 定义:最小点覆盖是一个点集,用最少的点和所有边关联公式: 最小点覆盖数 = 最大匹配数证明:下图非常关键1.我们可以这么构造一组最小点覆盖的点集。 从二分图的右部的每个未匹配点出发,找一条满足未匹配边-匹配边-未匹配边-匹配边……-未匹配边-匹配边的交叉路,并标记路径上的点。完成之后,左部上标记的点和右部上未标记的点共同组成了一个最小点覆盖...
2018-11-06 21:21:07
235
转载 HDU1150(二分图最小点覆盖证明)
题目链接:HDU1150题目意思:有A,B两种机器,A机器上有n种模具,B机器上有m种模具,有k个任务,每个任务可以在既可以在A机器上的x模具上生产,也可以在B机器上的y模具上生产。A,B机器都可以切换模具,开始的A,B都为0模具,问最少切换多少次模具。可以完成所有的任务。题目思路:如果我们把A机器的n个模具作为二分图的左部,B机器的m个模具作为二分图的右部,然后把每个任务当成一条连接左部...
2018-11-02 09:01:22
718
原创 51nod1231(曼哈顿距离最小生成树)
题目链接: 51nod1213题目意思:二维平面上有n个坐标为整数的点,点x1 y1同点x2 y2之间的距离为:横纵坐标的差的绝对值之和,即:Abs(x1 - x2) + Abs(y1 - y2)(也称曼哈顿距离)。求这N个点所组成的完全图的最小生成树的边权之和。(直接抄的)题目思路:如果直接O(n2)O(n^{2})O(n2)复杂度建图,求MST就等着吃T吧!仔细思考,事实上,有用的...
2018-10-25 15:19:31
303
1
原创 HDU4975(最大流是否只有唯一解)
题目链接:HDU4975题目意思:给出一个n∗mn*mn∗m的表格,现在你需要往每个空格里面填数,你只能填(0-9)范围内的数,现在再告诉你每一行的和以及每一列的和,现在询问你是否存在某种填数方案,如果存在是否唯一。题目思路:这是一个非常经典的最大流模型,我们可以类似二分图那样,将行作为二分图的左部,列作为二分图的右部,然后创建源点和汇点,然后看看流入左部的流量之和,是不是等于右部流出的流...
2018-10-24 13:39:21
3729
原创 HDU5573-Binary Tree(思维)
题目链接:HDU5573题目意思:你是一只青蛙,你在一个无穷大的二叉树上,按照线段树那种标号方式就像下面这个一样。1234567上图只是意思一样,这个二叉树是无穷大的,每个节点你可以得到标号数量的续命宝石或者失去该数量的续命宝石。你要从第1层走到第k层,走k步,对于每个节点你可以选择得到这个数量的续命宝石或者失去,要使得最后的宝石数量恰好为n,保证答案一定存在,输入方案。题目思路:我们...
2018-10-21 17:47:14
209
原创 HDU5584-LCM Walk(数论,数学推导)
###题目链接:HDU5584题目意思:你是一只青蛙,你在一个无限大的二维平面,如果你当前的位置为(x,y),那么你可以跳到(x +LCM(x,y),y)或者(x, y + LCM(x,y))。现在给你终点(ex,ey), 问有多少个起点可以按照这种走法走到这个点。题目思路:设x=n∗k,y=m∗k,gcd(x,y)=kx = n * k,y = m * k,gcd(x,y) = kx=n...
2018-10-21 16:28:40
336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人