linux
文章平均质量分 64
汤的Blog
这个作者很懒,什么都没留下…
展开
-
linux的会话、进程、进程组等概念
1.一些缩写PID = 进程ID (由内核根据延迟重用算法生成)PPID = 父进程ID(只能由内核修改)PGID = 进程组ID(子进程、父进程都能修改)SID = 会话ID(进程自身可以修改,但有限制,详见下文)TPGID= 控制终端进程组ID(由控制终端修改,用于指示当前前台进程组)2.关于进程、进程组、会话之前的关系总体关系:进程属于一个进程组,进程组属原创 2016-07-25 20:58:44 · 4205 阅读 · 0 评论 -
linux程序设计:线程同步,进程同步
一. 线程同步(信号量、互斥锁、条件变量、读写锁)地址:http://blog.csdn.net/yusiguyuan/article/details/14160081http://blog.csdn.net/yusiguyuan/article/details/14161225二.进程同步(管道、共享内存和消息队列)1. 管道pipe:管道是一种半双工的通信方式,数据只能单向原创 2016-10-13 22:16:25 · 590 阅读 · 0 评论 -
多线程的一些题目总结
转摘自大神博客:http://blog.csdn.net/morewindows/article/details/7392749原创 2016-09-26 17:54:27 · 337 阅读 · 0 评论 -
lilinux程序设计:进程间通信
自己没有总结,看别人的博客,讲得很仔细http://blog.csdn.net/ljianhui/article/details/10168031原创 2016-10-11 22:57:32 · 339 阅读 · 0 评论 -
linux程序设计:POSIX线程
一. 什么是线程 线程是一个进程内部的一个控制序列。在一个程序中的多个执行路线就叫线程。 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 23原创 2016-09-26 17:42:35 · 388 阅读 · 0 评论 -
linux程序设计:可重入和线程安全
在多线程编程和信号处理过程中,经常会遇到可重入(reentrance)与线程安全(thread-safe)。很多人纠结于reentrance和thread-safe两个概念理解纠缠不清。我想救我对reentrance和thread-safe的理解作个总结一、可重入(reentrance)首先来看下APUE中,列出的可重入函数:略以上表中的这些函数,都原创 2016-09-26 10:48:23 · 378 阅读 · 0 评论 -
linux程序设计:堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两原创 2016-09-26 10:32:44 · 1768 阅读 · 0 评论 -
linux程序设计:信号
一. 信号是什么软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进原创 2016-09-25 22:44:20 · 278 阅读 · 0 评论 -
linux程序设计:进程和信号
一. 什么是进程 进程:一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。可以把进程看成是正在运行着的程序。 linux是多任务操作系统:可以同时运行多个程序。每个运行着的程序实例就构成一个进程。 linux是多用户操作系统:可以同时允许多个用户访问。每个用户可以用时运行多个程序,甚至可以运行同一个程序的许多个实例。 正在运行着的程序或进程由程原创 2016-09-25 21:28:14 · 2399 阅读 · 0 评论 -
Linux程序设计 第四章:linux环境
一. 程序参数int main(int argc , char *argv[])argc是程序参数的个数,argv是一个代表参数自身的字符串数组。参数个数包括程序自身,argv数组也包含程序名并把它作为第一个元素argv[0]二. 环境变量控制shell脚本和其它程序的变量,可以用来配置用户环境。char *getenv( const char * name);int pu原创 2016-09-21 22:26:43 · 258 阅读 · 0 评论 -
linux程序设计:第三章 文件操作
一. linux文件系统1.在linux中几乎一切都是文件,可以像使用文件一样时用磁盘文件、串行口和打印机和其他设备。目录是用于保存其它文件的节点号的名字的文件。硬件设备也被映射为文件。常用的设备文件有三个:/dev/console 系统控制台/dev/tty 控制终端/dev/null 空设备2.操作系统的核心,即内核是一组设备驱动程序,是一组对系统硬件进行控制的底层原创 2016-09-21 16:33:17 · 316 阅读 · 0 评论 -
linux程序设计:linux物理内存和虚拟内存
一. 物理内存和虚拟内存 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在Linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,原创 2016-09-24 21:09:59 · 2711 阅读 · 0 评论 -
linux程序设计:调试
一. 一些基本知识1.gcc和g++和cc gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Col原创 2016-09-24 17:20:58 · 395 阅读 · 0 评论 -
linux程序设计:第七章 数据管理
一. 内存管理 1.简单的内存分配使用标准c语言函数库中的malloc调用来分配内存。 void * malloc(size_t size)返回的是一个void*指针,因此需要通过类型转换。可以保证其返回的内存是地址对齐的,因此可以将其转换成任何类型的指针。2.分配大量的内存 应用程序所需的内存是由linux内核管理的。刚开始,内核只是通过使用空闲的物理内存来满原创 2016-09-23 15:24:30 · 318 阅读 · 0 评论 -
linux程序设计:socket编程
http://blog.csdn.net/hguisu/article/details/7445768原创 2016-10-13 22:21:44 · 330 阅读 · 0 评论