自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 僵尸进程和孤儿进程

1、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。  孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿

2017-07-13 17:45:30 160

原创 初步认识进程

一. 典型的Linux结构处理过程:二.进程概念1. 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。2、狭义定义:进程是正在运行的程序的实例 。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的

2017-07-11 20:16:22 293

原创 多线程编程—线程的同步与互斥

A . 线程一、线程的同步与互斥同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 1、线程(进程)同步的主要任务答:在引入多线

2017-07-10 22:54:26 1090

原创 多线程编程之系统编程

一,线程的基本概念1,线程的定义:线程也被称为轻量进程(LWP)计算机科学术语,指运行中的程序的调度单位。同一进程的多个线程共享同一地址空间。一般,线程具有就绪、阻塞和运行三种基本状态。各线程还共享以下进程资源和环境:文件描述符表每种信号的处理方式(SIG_IGN、SIG_DFL或者自定义的信号处理函数)当前工作目录用户id和组id但有些资源是每个线程各有一份的(独占):线程id上下文

2017-07-05 22:07:46 193

原创 线程安全和可重入函数

一,什么是线程安全?1,线程安全就是说多线程访问同一代码,不会产生不确定的结果。换句话说,线程安全就是多线程访问时,采用加锁机制,当一个线程访问该类的某个数据时,用锁对数据进行保护,其他线程不能访问该数据直到该线程读取完,其他线程才可使用,线程安全不会出现数据不一致或者数据污染。反之, 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。二,什么是可重入函数?

2017-07-05 18:46:49 207

原创 eval解析及反引号与$()区别

eval语法:eval cmdLine     eval会对后面的cmdLine进行两遍扫描,如果第一遍扫描后,cmdLine是个普通命令,则执行此命令;如果cmdLine中含有变量的间接引用,则保证间接引用的语义。1. eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量

2017-06-27 21:54:25 689

原创 linux中信号的产生 阻塞与捕捉

一,信号的基本概念在讲信号之前,先举个例子:    日常生活中,当我们走到马路上时,看到的绿灯是一种信号,它能提示我们在什么时候安全的过马路。正是由于这些信号的存在,才使得我们的生活方便而有序。通俗的讲:     信号就是当你看到它是知道它是什么,并且知道看到信号之后应该做什么,至于你遵不遵守就是你自己的事了。信号的产生和处理方法:    同日常生活中的信号一样,计算机在

2017-06-26 22:44:45 465

原创 深入理解CRC校验

CRC校验原理简介:    CRC校验就是将传输的数据当做一个位数很长的数,将这个数除以另一个数( “模2除法” )。得到的余数作为校验数据附加到原数据后面。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。如果有余数,则表明该帧在传输过程中出现了差错。模二除法实例:CRC校验分为以下几个步骤:     (1)先选择一个用于在接收端进行校验时,对接收的帧进行除法运算的除数。

2017-06-26 20:55:48 1010

原创 网络编程中常用的函数及结构体总结

struct sockaddr和struct sockaddr_i:    struct sockaddr和struct sockaddr_in这两个结构体用来保存一个套接字的信息。在各种系统调用或者函数中,只要和网络地址打交道,就得用到这两个结构体。网络中的地址包含3个方面的属性:1 地址类型: ipv4还是ipv62 ip地址3 端口函数原型:struct sockaddr{ unsi

2017-06-26 20:15:46 432

原创 TCP的三次握手与四次挥手

为什么要三次握手 为什么要四次挥手 主动断开链接的一方为什么要进入TIME_WAIT状态一、TCP报文格式     TCP报文格式图:                                          图1 TCP报文格式 上图中有几个字段需要重点介绍下:     (1)序号:Seq序号,占32位,用来标识从TC

2017-06-23 18:10:42 204

原创 重定向之dup,dup2

dup函数的作用:复制一个现有的句柄,产生一个与“源句柄特性”完全一样的新句柄(也即生成一个新的句柄号,并关联到同一个设备)dup2函数的作用:复制一个现有的句柄到另一个句柄上,目标句柄的特性与“源句柄特性”完全一样(也即首先关闭目标句柄,与设备断连,接着从源句柄完全拷贝使用场景: 在Linux命令行输入ls > a.txt, 这里就用了dup,将原本输出在屏幕上的文字重定向到file文

2017-06-22 23:36:14 396

原创 poll函数

函数原型:   int poll(struct pollfd fd[], nfds_t nfds, int timeout);      参数:       1)第一个参数:一个结构数组,struct pollfd结构如下:   struct pollfd{   int fd; //文件描述符   short events; //请求的

2017-06-22 21:23:14 717

空空如也

空空如也

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

TA关注的人

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