Linux
文章平均质量分 78
Wang__Peter
C、C++语言,数据结构伪语言,研究VS2013编译器对语法的处理方式,7月开始转型做产品,希望可以跟大家一起讨论,一起成长
展开
-
Linux:浅谈tack_struct
进程的概念:OS:程序的一个执行实例。正在执行的程序,能分配处理器并由处理器执行的实体。 内核:但当分配系统资源的实体。 进程的两个基本元素是程序代码和代码相连的数据集。进程是一种动态描述,但并不代表所有进程都在运行。进程描述:每个进程在内核中都有⼀一个进程控制块(PCB)来维护进程相关的信息,Linux内核的 进程控制块是task_struct结构体。现在我们全⾯面了解⼀一下其中都有哪些信息原创 2017-06-19 21:14:45 · 607 阅读 · 0 评论 -
对比线程安全和可重入函数
概念:什么是线程安全?线程安全线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。概念: 线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用原创 2017-07-09 21:36:42 · 333 阅读 · 0 评论 -
子进程的异步等待方式
子进程: 子进程指的是由另一进程(对应称之为父进程)所创建的进程。 子进程继承了对应的父进程的大部分属性,如文件描述符。在Linux中,子进程通常为系统调用fork的产物。在此情况下,子进程一开始就是父进程的副本,而在这之后,根据具体需要,子进程可以借助exec调用来链式加载另一程序。 一个进程可能下属多个子进程,但最多只能有1个父进程,而若某一进程没有父进程,则可知该进原创 2017-07-08 11:16:35 · 409 阅读 · 0 评论 -
Linux下僵尸进程与孤儿进程
僵尸进程(Zombies):(1)僵尸进程是一个比较特殊的状态,当进程退出父进程(使用wait()系统调用)没有没有读取到子进程退出的返回代码时就会产生僵尸进程。僵尸进程会在以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。 (2)一个进程在其父进程没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。如果其父进程还存在而一直不调用wait(),则僵尸进程无法原创 2017-06-26 20:53:40 · 285 阅读 · 0 评论 -
Linux文件类型
Linux下一切皆文件,那么这么多文件,怎么区别种类呢?下面是自己的总结,与大家进行分享。 普通文件(regular file)第⼀一个字符为[ - ] 包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档。是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。②二进制文件(binary): 你的Linux中的可执行文件(scripts, 文字型批处理原创 2017-06-21 20:08:18 · 459 阅读 · 0 评论 -
Linux:生产者消费者模型
生产者消费者,是进程间通信的一个经典模型。参考过很多资料后,总结了一个“321原则”,现在我们一起来谈一谈。“321原则” “3”代表的是三种关系 生产者与消费者的互斥与同步关系 生产者与生产者的互斥关系 消费者与消费者的互斥关系 “2”代表两种角色 生产者:往交易场所放东西(在计算机中一般都是数据)的人 消费者:从交易场所取东西的人原创 2017-07-03 13:51:34 · 390 阅读 · 0 评论 -
Linux:如何使用gdb调试多进程多线程程序
1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明parent on 只调试主进程(GDB默认)原创 2017-07-02 21:53:25 · 582 阅读 · 0 评论 -
crond和crontab分别是什么
crond:crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护进程。 crontab:crontab命令常见于Unix和类Unix的操作转载 2017-07-11 19:19:08 · 3446 阅读 · 0 评论 -
信号屏蔽pending
讲到pending,就不得不提一下阻塞信号方面的知识:实际执行信号的处理动作称为信号递达(Delivery),信号从产生到递达之间的状态,称为信号未(Pending)。进程可以选择阻塞(Block )某个信号。被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才 执行递达的动作。 注意: 阻塞和忽略是不同的,只要信号被阻塞就不会递达,而忽略是在递达之后可选的一种处理动作 信号间三原创 2017-07-11 15:32:23 · 321 阅读 · 0 评论 -
Linux:信号量
接下来我将围绕着以下三点,对信号量的知识做出相应的总结,希望能够为大家带来帮助:编写信号量代码,实现二元信号量对显示器进行保护 实现父子进程输出成对AA或BB调研SEM_UNDO标志代表什么含义,用途是什么,如何做到回滚信号量信号量:有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代原创 2017-07-01 11:38:50 · 583 阅读 · 1 评论 -
模拟实现sleep函数——mysleep()
编写普通版本mysleep 编写规避竞态条件的mysleep 对两者进行对比 作业按照链接提交sleep函数原型:#include<unistd.h>unsigned int sleep(unsigned int seconds);什么是sleep()函数?sleep函数,是一个常用的定时函数,在指定时间内不做任何动作,时间结束后继续执行要完成的工作。 那么,自然要使用到定时函数alar原创 2017-07-10 14:38:52 · 768 阅读 · 0 评论