摘要:
shell Unix系统中常见的shell有:sh、csh、ksh、tcsh、bash 使用命令: vim /etc/shells 可以查看当前系统支持的bash shell执行脚本 shell执行脚本是一门解释性语言、批量化处理语言,大大的节省了工作成本 shell脚本第一行必须以 #!开头,它表 阅读全文
摘要:
网络进程间通信:socket API简介 不同计算机(通过网络相连)上运行的进程相互通信机制称为网络进程间通信(network IPC)。 在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主 阅读全文
摘要:
什么是RAII? RAII是Resource Acquisition Is Initialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法。 RAII又叫做资源分配即初始化,即:定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资 阅读全文
摘要:
设计模式: 设计模式代表了最佳实践,是软件开发过程中面临一般问题的解决方案。 设计模式是一套被反复使用、经过分类、代码设计总结的经验。 单例模式 单例模式也叫单件模式。Singleton是一个非常常用的设计模式,几乎所有稍微大一些的程序都会使用到它,所以构建一个线程安全并且 高效的Singleton 阅读全文
摘要:
红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,可以是Red或Black。 通过对任何一条从根到叶子节点简单路径上的颜色来约束树的高度,红黑树保证最长路径不超过最短路径的两倍,因而近似于平衡。 红黑树是满足下面红黑性质的二叉搜索树: 1. 每个节点,不是红色就是黑色的 2. 阅读全文
摘要:
我在使用PHPmailer发邮件时候,遇到了这个问题“SMTP Error: Could not connect to SMTP host.”,分享一下解决方法。 这个错误是PHP版本7产生的。如果我将PHP更改为5,它就可以工作了。 1.首先查看PHP环境扩展中是否开启了socket 和opens 阅读全文
摘要:
首先下载一个安装包 按照默认选项,依次安装: 去掉不必要的选项: 选择安装路径: 显示下图说明已经成功安装完成了。 打开XAMPP,启动Apache服务: 如果显示Apache服务无法启动,有如下错误: Error: Apache shutdown unexpectedly. 这是由于端口占用造成的 阅读全文
摘要:
先来先服务、短进程优先算法 一.目的 通过使用c对先来先服务、短进程优先算法的实现,进一步理解并掌握调度算法的逻辑过程,以及每种算法分别在进程调度和作业调度中的的处理方法. 二.原理 先来先服务:该算法在每次调度中,都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为他们分配资 阅读全文
摘要:
关于 信号signal的知识铺垫 点这里 信号由三种处理方式: 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个自定义函数,这称为捕捉信号。 进程收到一个信号后不会被立即处理,而是在恰当时机进行处理!即内核态返回用户态之前 ! 但是由于信号处理函数的代码在用户空间,所以这增加了内核处理信号 阅读全文
摘要:
eval eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令;如果命令中含有变量的间接引用,则保证间接引用的语义。也就是说,eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。因此,eval命令适用于那些一次扫描无法实现其功能的变量。 eval 执行以下 阅读全文
摘要:
Unix下共有五种I/O模型: 1. 阻塞式I/O 2. 非阻塞式I/O 3. I/O复用(select和poll) 4. 信号驱动式I/O(SIGIO) 5. 异步I/O(POSIX的aio_系列函数) io请求分两步: 1. 先将数据从存储介质(磁盘,网络等)拷贝到内核缓冲区,此时称为数据准备好 阅读全文
摘要:
大家都知道如下代码中,被const限定的a是不可以被直接修改的 void main() { const int a = 3; a=1; } 在C++中const修饰的常量,不能被直接修改,但是可以通过指针进行间接修改 来看下面的例子: 运行后输出 5 3 单步执行,利用内存窗口进行查看,未修改前a为 阅读全文
摘要:
信号的基本概念 每个信号都有一个编号和一个宏定义名称 ,这些宏定义可以在 signal.h 中找到。 使用kill -l命令查看系统中定义的信号列表: 1-31是普通信号; 34-64是实时信号 所有的信号都由操作系统来发! 对信号的三种处理方式 忽略此信号:大多数信号都可使用这种方式进行处理,但有 阅读全文
摘要:
core dump 的基本概念 当一个进程要异常终止时 ,可以选择把进程的用户空间内存数据全部保存到磁盘上 ,文件名通常是 core, 这叫做 Core Dump。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作 阅读全文
摘要:
死锁 死锁可以被定义为一组竞争系统资源或相互通信的进程间相互的“永久”阻塞。当一组进程中的所有进程都在等待一个事件(等待请求资源的释放),而只有在进程集合中的其他阻塞的进程才可以触发该事件,这时就成一组进程死锁。 因为没有事件可以触发,故死锁是永久性的。 一般情况下,如果同一个线程先后两次调用loc 阅读全文
摘要:
1 需求分析 1.1 银行家算法的实现思想 允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。 1.2 阅读全文