tmux基本指令 tmux是一个终端窗口管理器指令功能tmux ls列出所有tmux会话tmux detachCtrl+b d. 退出当前会话,会话内的活动还在继续tmux attach -t xxx重新接入会话tmux kill-session -t xxx完全关闭会话tmux switch -t xxx切换到某个会话tmux rename -t xxx重命名会话窗口管理窗口可以看成是当前会话的页签
《程序员的自我修养--链接、装载与库》笔记--第二章 编译和链接 第二章 编译和链接预编译、编译、汇编、链接预编译处理规则:删除所有“#define”,展开所有的宏;处理所有的预编译指令,比如#if, #ifdef, #elif, #else, #endif;处理#inlcude预编译指令,将被包含的文件插入到该预编译指令的位置,这是递归进行的;删除所有注释;添加行号和文件名标识;保留所有的#pragma编译器指令;编译过程就是把预处理完的文件进行一
《程序员的自我修养--链接、装载与库》笔记--第一章温故而知新 第一章 温故而知新计算机软件体系结构开发工具与应用程序使用操作系统应用程序编程接口;应用程序接口的提供者是运行库;运行库使用操作系统提供的系统调用接口;系统调用接口在实现中往往以软件中断的方式提供。cpu分时系统:每个程序运行一段时间后都主动让出CPU,使得一段时间内每个程序都有机会运行一小段时间。内存程序直接使用物理地址的缺点:地址空间不隔离:所有程序能直接访问物理地址,如果一不小心修改
Linux入门笔记2--一些工作笔记 1. Linux文件后的“~”是指该文件是临时文件,主要是编辑文本或源代码生成的。2. Linux获取root权限: 1. 终端输入: sudo passwd root 然后输入密码 2. 再输入:su root ,输入刚才的密码就能获取root权限。3. Linux退出root权限(假设推出到用户kop) 1. 终端输入:su kop 便切换到kop用户,退出r
Linux入门笔记1--入门命令 man info helptabcdlspwdmkdirrmcpmvcatmorelessgreptarchownchmoduseraddpasswdwhereisman, info, –help:获取帮助tab:补全命令cd:进入某个路径的命令分为绝对路径和相对路径绝对路径强调从“/”起,一直到所在路径, 如“/home/mindray/Music/
求职笔记-操作系统-什么是临界区?如何解决冲突? 每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。如果有若干个进程要求进入空闲的临界区,一次仅允许一个进程进入。任何时候,处于临界区内的进程不可多余一个。如已有进程进入自己的临界区,则其他所有试图进入临界区的进程必须等待。进入临界区的进程要在有限时间内退出,以便其他进程能即使进入自己的临界区。如果进程不能进入自己的临界区,则应让出CPU,避免
求职笔记-操作系统-死锁 死锁的概念产生死锁的主要原因产生死锁的必要条件 常用避免死锁的方法解决死锁问题的策略死锁的避免死锁的解除死锁的概念在两个或多个并发的进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在 保持着资源 ,在未改变这种状态之前都不能 向前推进 ,称这一组进程产生了死锁。通俗的讲,就是两个或多个进程被无限期阻塞、互相等待的一种状态。产生死锁的主要原因系统资源不足进程运行推进的
求职笔记-操作系统-临界区,互斥量,信号量,事件的区别 临界区 Critical Section :通过对多线程的串行化来访问公共资源或一段代码 。保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么 在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操 作共享资源的目的。虽然
求职笔记-操作系统-进程与线程 进程与线程进程并发执行的程序在执行过程中分配和管理资源的基本单位。竞争计算机系统资源的基本单位。每一个进程都有一个自己的 地址空间 即进程空间。线程被系统独立调度和分派的基本单位,不拥有系统资源,而是与所处同一个进程中的其他线程共享进程所拥有的全部资源。关系一个线程只能属于一个进程,一个进程可以有多以线程,但至少有一个线程。资源分配给进程,同一个进程中的所有线程共享该资源。处理机分配给线程,即
求职笔记-操作系统-分段式存储管理、分页式存储管理的区别? 分页式储存管理用户程序的逻辑地址空间被划分为若干个固定大小的地址空间,称为“页”,内存物理地址空间也分成相对应的若干个物理块,页和块的大小相等,可将用户程序的任一页放在任一块中,实现离散分配 。有效提高内存利用率。分段式储存管理将用户程序空间分成若干个大小不等的段 ,每段可以定义一组相对完整的逻辑信息。 存储分配时,以段为单位 ,段与段在内存中可以不相邻接,也实现了离散分配。能反映程序的逻辑结构,便
求职笔记-操作系统-缓冲区溢出 缓冲区溢出当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。上溢当一个超长的数据进入到缓冲区时,超出部分被
求职笔记-操作系统-动态链接库、静态链接库区别 dll什么意思动态链接库,存放的是各类程序的函数实现过程,当程序需要调用函数时,需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。还可以减小程序的体积。动态链接库与静态链接库的区别静态链接库把文件中用到的函数代码直接链接进目标程序,程序运行时不再需要其他的库文件,动态链接库就是把调用的函数所在文件
求职笔记-网络-tcp TCP报文结构源端口号 (2字节)目的端口号 (2字节)序号 (4字节)确认序号 (4字节)首部长度 (4位)保留长度6位 标志位 (6)窗口大小 (2字节)检验和 (2字节)紧急指针 (2字节)任选字段 (0 - 40字节):流量控制让发送发送速率不要过快,让接收方来得及接收。利用滑动窗口机制就可以实施流量控制。原理这就是运用 TCP 报文段中的窗口大小字段来控制,发送方的发送窗口不可以大于接收
求职笔记-网络-Http与Https区别 HTTP互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL, SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通
剑指offer-面试题40 : 数组中只出现一次的两个数字 //有一个数组,有两个数字只出现一次,其他数字都出现了两次,求这两个只出现一次的数字。//先用异或求出那两个数字的异或和,因为这两个数字不同,那么他们肯定有一位是不同的,那么//这个异或和的二进制肯定至少有一位是1,找出这个位置,再根据这个位置将这个数组分为两组,分别异或求和,最后这两个数组就剩下那两个数字了。#include<iostream>using namespace std;//找到
剑指offer-面试题39 : 二叉树的深度 //方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元
剑指offer-面试题39 : 二叉树的深度 //方法1 : 通过类似快排的方法找到排在第k+1位置的数,并且左边都是比他小的,因此桌面的书就是k个最小的数#include<iostream>#include<vector>using namespace std;void Swap(int &a, int &b){ int temp = a; a = b; b = temp;}//和快排类似, 找一个枢纽元
剑指offer-面试题38 : 数字在排序数组中出现的次数 //如果直接遍历数组,则时间复杂度是O(n);//如果用二分法分别找出第一次出现的位置和最后一次的位置,再相减,时间复杂度就是O(log(n));#include<iostream>using namespace std;int GetFirstK(int Array[], int length, int K, int start, int end){ if(Array == NU
剑指offer-面试题37 两个链表的第一个公共节点 /*如果两个链表有公共节点,那么从公共节点开始,他后面的节点就都相同了。可以从后向前找出第一个不相同的节点,那么上一个就是第一个相同的,可以先让长链表先走几步,直到长短相同,再同步走,直到第一个相同的*/#include<iostream>#include<stack>using namespace std;typedef struct ListNode* Node;struct L