
Linux系统
文章平均质量分 88
S-Lyf
纽约时间比加州时间早三个小时,但加州时间并没有变慢
展开
-
【Linux】进程控制块PCD结构(tack_struct)
tack_struct结构图:一、task_struct 结构描述1.进程状态(State)进程执行时,它会根据具体情况改变状态。进程状态是调度和对换的依据。Linux 中的进程主要有如下状态,如表4.1 所示。(1)可运行状态处于这种状态的进程,要么正在运行、要么正准备运行。正在运行的进程就是当前进程(由current 宏 所指向的进程原创 2016-06-12 10:23:13 · 9196 阅读 · 1 评论 -
【Linux】进程间通信之管道
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Com),也就是说进程通信使不同的进程可以看见同一份系统资源。1、管道是一种最基本的IPC机制,由pipe函数来原创 2016-07-25 21:05:51 · 1662 阅读 · 0 评论 -
【Linux】进程等待&程序替换
一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCD还保留着。 内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常退出则保存着导致该进程终止的信息是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。我们知道一个进程的退出状态可以在Shell中用特殊变量 $? 查看,因为Shell是它的父进程,当它终原创 2016-07-24 22:28:49 · 1790 阅读 · 0 评论 -
【Linux】进程间通信之共享内存
为什么进程间需要通信?1、数据传输:一个进程需要将它的数据发送给另一个进程。2、资源共享:多个进程之间享受同样的资源3、通知事件:一个进程需要向另一个或另一组进程发送消息,通知它们发生了某种事件。4、进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够即使知道它的状态改变。Linux进程间通信(IPC)原创 2016-07-28 21:04:06 · 2758 阅读 · 0 评论 -
【Linux】线程和死锁
死锁的概念:如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。死锁的常见表现:死锁不仅会发生多个进程中,也会发生在一个进程中。(1)多进程死锁:有进程A,进程B,进程A拥有资源1,需要请求正在被进程B占有的资源2。而进程B拥有资源2,请求正在被进程A战友的资源1。两个进程都在等待对方释放资源后请求该资源,而相原创 2016-08-02 09:50:28 · 2324 阅读 · 0 评论 -
【Linux】进程组、会话和精灵进程
对进程组、作业和会话进行说明。1、进程组2、作业3、会话4、精灵进程(或守护进程)原创 2016-08-04 10:19:06 · 2137 阅读 · 0 评论 -
【Linux】进程概念与编程
1、用atexit()注册顺序和终止顺序有什么关联2、分析程序为什么出现打印了bug()函数中的printf(),main函数后面进程终止了。3、不引用b变量名称,改变b变量的内容。4、fork()---博客(打印的次数:2*i!)——fork()是一分为二的过程原创 2016-06-19 09:32:59 · 614 阅读 · 0 评论 -
Linux安装MySQL的两种方法
1. 运行平台:CentOS 6.3 x86_64,基本等同于RHEL 6.32. 安装方法:安装MySQL主要有两种方法:一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性,这里不做说明;另一种是通过编译过的二进制文件进行安装。二进制文件安装的方法又分为两种:一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件;第转载 2016-08-13 22:33:07 · 2298 阅读 · 0 评论 -
【Linux】生产者和消费者问题
aaaa原创 2016-08-03 20:43:15 · 1748 阅读 · 0 评论 -
【Linux】可重入函数和线程安全的区别与联系
*****可重入函数 函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入。在进行链表的插入时,insert函数访问一个全局链表,有可能因为重入而造成错乱,像这样的函数称为不可重入函数,反之,如果一个函数只访问自己的局部变量或参数,则称为可重入(Reentrant) 函数。重入:即重复调用,函数被不同的流调用,有可能会出现第一次调用还没原创 2016-07-30 19:15:23 · 5209 阅读 · 0 评论 -
【Linux】自主实现my_sleep
首先说一下信号相关的内容。1、信号 我们在运行程序时,经常会碰到报错,这是由于操作系统触发异常,于是系统抛出某一信号产生的。例如,一个死循环的程序,处理方式如下:1)用户输入命令,在Shell下启动这个前台进程;2)用户按下Ctrl-C,这个键盘输入产生一个硬件中断,该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断;3)终端驱动程序将Ctrl-C原创 2016-07-29 21:27:18 · 1247 阅读 · 0 评论 -
【Linux】进程间通信之信号量
1、为什么要用信号量 管道和消息队列都是两个或多个进程访问一个共享资源,而为了防止出现因多个线程同时访问一个共享资源而引发的一系列问 题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就是提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信原创 2016-07-27 18:12:07 · 1778 阅读 · 0 评论 -
【Linux】进程间通信之消息队列
进程间通信(IPC)主要包括了管道、系统IPC(包括了消息队列、信号及共享存储)和套接字(SOCKET)。 IPC方法包括管道(PIPE)、消息队列(Message_Queue)、旗语、共用内存(ShareMemory)以及套接字(Socket)。 下面主要说明一下消息队列。1、初步认识 根据管道的特性,知道管道的生命周期是随进程原创 2016-07-26 21:39:33 · 1089 阅读 · 0 评论 -
【Linux】进程的创建执行和优先级
一、进程的优先级进程cpu资源的分配就是指进程的优先权。优先权高的进程有优先执行的权利。 加入NI值之后,PRI的值变成 PRI(new) = PRI(old) + nice; 当nice值为负值的时候,进程的PRI将变小,进程的优先级将变大,进程相对于原来的PRI值会更早被执行。当nice值为正的时候,相反的情况。改变nice值的命令,命令有两个:原创 2016-07-22 11:47:37 · 5166 阅读 · 0 评论 -
【Linux】进程终止
1、用atexit()注册顺序和终止顺序有什么关联2、分析程序为什么出现打印了bug()函数中的printf(),main函数后面进程终止了。3、不引用b变量名称,改变b变量的内容。4、fork()---博客(打印的次数:2*i!)——fork()是一分为二的过程原创 2016-07-24 11:13:07 · 895 阅读 · 0 评论 -
【Linux】进程的创建fork()和vfork()
1、fork()函数#includepid_t fork(void);一个现有进程可以调用fork创建一个新进程。返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1。2、vfork()函数原创 2016-07-23 21:36:50 · 1137 阅读 · 0 评论 -
【Linux】进程调度算法
进程调度 无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。进程调度具有四条基本属性和三个基本状态:基本属性: 1、多态性 从诞生、运行,直至消灭; 2、多个原创 2016-06-12 10:54:20 · 2048 阅读 · 0 评论 -
HTTP协议详解(真的很牛逼)
转自:http://blog.youkuaiyun.com/gueter/archive/2007/03/08/1524447.aspx引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,转载 2016-10-23 20:54:44 · 1745 阅读 · 0 评论