unix系统编程
大家一起学习unix系统编程!
zephyr_pro
人所有的愤怒全部来自自己的无知。
展开
-
unix系统编程day07--线程同步,进程同步
同步概念线程同步理解:多个线程之间有序的执行。数据混乱原因资源共享(独享资源不会)调度随机(意味着数据访问出现竞争)缺乏合理的线程调度机制互斥量mutexpthread_mutex_t解释:可以简单认为是一把锁,拥有0和1两个值,0为加锁状态,1为解锁状态主要应用函数pthread_mutex_init函数原型:int pthread_mutex_init(pth...原创 2019-02-26 21:54:05 · 251 阅读 · 0 评论 -
unix系统编程day06--Linux线程讲解
线程概念什么是线程LWP:light weight process轻量级进程,本质仍是进程(在Linux环境下)进程:独立地址空间,拥有PCB线程:也有PCB,但没有独立的地址空间(共享)区别:在于是否共享地址空间。 独居(进程);合租(线程)Linux下:线程:最小执行单位,进程最小分配资源单位,可看成只有一个线程的进程Linux内核线程实现原理类unix系统中,早期是没有线...原创 2019-02-23 22:49:45 · 164 阅读 · 0 评论 -
unix系统编程day05--Linux中时序竞态的讲解
竞态条件(时序竞态)个人理解:由于系统中各个进程抢占cpu时间,导致本应该按照时间发生的事情没有发生,造成时间上的混乱。pause函数函数原型 int pause(void);作用:挂起当前进程,等待信号来唤醒,处理的信号必须捕捉,否则信号默认动作导致进程直接停止。返回值:如果信号的处理动作为默认动作,则进程终止,pause函数没机会返回如果信号的处理动作为忽略操作,则...原创 2019-02-20 23:36:31 · 163 阅读 · 0 评论 -
unix系统编程day04--Linux中信号和信号集的讲解
信号的概念信号的机制:A给B发送信号,在B收到信号之前执行自己的代码,收到信号后无论状态如何,首先处理信号然后去执行代码,与硬件终端类似–异步模式,但是信号是在软件层面上实现的,早期常称为软中断。信号的特质:信号由于是使用软件的方法实现的,所以会有延时性,一般时间比较短,用户感觉不到。注:每个进程收到的信号,都是由内核负责发送的,也是由内核处理的。与信号相关的事件和状态产生信号:...原创 2019-02-17 15:55:56 · 245 阅读 · 0 评论 -
unix系统编程day03--Linux中IPC方法讲解
管道pipe具体参考manpage,使用方法比较简单,注意数据单向流动。共享存储映射mmap函数函数原型:void * mmap(void * addr, size_t length, int prot, int flags, int fd, off_t off_set)参数:addr:映射区的首地址,一般传NULL,最后映射区的首地址会以返回值的方式传出。length:欲创建的...原创 2019-02-14 18:03:52 · 157 阅读 · 0 评论 -
unix系统编程day02--Liunx中exec函数族和回收进程函数讲解
exec函数组作用:在程序运行的过程中,再执行一个完整的程序。execlp函数解释:其中l表示list,p表示PATH。作用:借助PATH环境变量,加载一个进程,新进程会清空原进程的虚拟地址空间的0-3G空间,但是进程id不会变。函数原型:int execlp(const char * filename, const char * filename, const char * arg0...原创 2019-01-31 14:40:09 · 199 阅读 · 0 评论 -
unix系统编程day01--Linux进程讲解
一、进程相关概念程序与进程  程序:是指编译好的二进制文件,再磁盘上,不占用系统资源(cpu,内存,打开的文件,设备,锁。。。)  进程:是一个抽象的概念,与操作系统原理联系紧密,进程是活跃的程序,占用系统资源(程序运行起来,占用一个进程)  程序 -> 剧本(纸) 进程 -> 戏(舞台、演员、灯光)  同一剧本原创 2019-01-26 21:58:46 · 263 阅读 · 0 评论