
linux
文章平均质量分 83
firefox-w
c语言,c++, linux操作系统,数据结构,计算机网络
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux操作系统(find指令大全)
find指令 Linux下find命令在目录结构中搜索文件并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强.大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限原创 2017-03-27 19:47:37 · 1414 阅读 · 1 评论 -
线程安全和可重入函数
线程安全 1.线程安全 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 2.线程不安全 就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据受到污染。(解决方法:基本上所有的并发模式在解决线程安全问题上,都采用“序列化访问临界资源”原创 2017-07-07 10:42:03 · 478 阅读 · 0 评论 -
mysleep
mysleep 普通版本的mysleep: 1、 main函数调用mysleep函数,后者调用sigaction注册了SIGALRM信号的处理函数handler。 2、调用alarm(time)设定闹钟。 3、调用pause等待,内核切换到别的进程运行。 4、time秒之后,闹钟超时,内核发SIGALRM给这个进程。 5、从内核态返回这个进程的用户态之前原创 2017-07-05 16:55:59 · 575 阅读 · 0 评论 -
创建守护进程
守护进程 守护进程是一个在后台运行并且不受任何终端控制的进程,也称精灵进程(Daemon),它独⽴立于控制终端并且周期性地执⾏行某种任务或等待处理某些发⽣生的事件。守护进程是⼀一种很有用的进程。Linux的大多数服务器就是⽤守护进程实现的。⽐如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。⽐如,作业规划进程crond等Linux系统启动时会启动原创 2017-07-04 09:49:48 · 604 阅读 · 0 评论 -
crond和crontab
crond 与crontab crond 和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护进程。 用 servic原创 2017-07-02 16:50:37 · 3143 阅读 · 0 评论 -
生产者消费者模型
生产者消费者 生产者消费者模型的描述:两个进程共享一个缓冲区,一个进程称为生产者向缓冲区中放数据,另一个称为消费者从缓冲取中取数据,当缓冲区中被放时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲中取没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。 生产者和消费者模原创 2017-07-11 14:27:39 · 1049 阅读 · 4 评论 -
线程死锁
线程死锁 死锁的概念: 两个或多个线程发生永久堵塞(等待),每个线程都在等待被其他线程占用并堵塞了的资源。显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。计算机系统产生死锁的根本原因就是资源有限且操作不当。即:一种原因是系统提供的资源太少了,远不能满足并发进程对资源的需求。这种竞争资源引起的死锁是我们要讨论的核心。例如:消息是一种临时性资源。某一时刻,进原创 2017-06-08 18:35:05 · 811 阅读 · 0 评论 -
进程替换(exec函数)
1 # include 2 #include 3 #include 4 #include 5 #include 6 #include 7原创 2017-05-21 21:37:18 · 867 阅读 · 0 评论 -
模拟实现shell
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 void GetPwd() 11 { 12 char pwd[256]={0}; 13 getcwd(p原创 2017-05-21 18:58:30 · 1922 阅读 · 0 评论 -
mm_struct
mm_struct 无论是内核线程还是用户进程,对于内核来说,无非都是 task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为它记录了这个进程所有的context。其中有一个被称为'内存描述符‘(memory descriptor)的数据结构 mm_struct,抽象并描述了Linux视角下管理进程地原创 2017-04-20 14:29:38 · 1266 阅读 · 0 评论 -
僵尸进程和孤儿进程
僵尸进程和孤儿进程 在Unix系统编程中,常常会碰到两个概念:僵死进程和孤儿进程 僵死进程 :在Unix进程模型中,进程是按照父进程产生子进程,子进程产生子子进程这样的方式创建出完成各项相互协作功能的进程的。当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。子进程虽然已经退出了,但是在系统进程表中还为它保留了一些退原创 2017-04-16 14:26:31 · 789 阅读 · 0 评论 -
atexit函数用法
atexit函数的用法 首先先看一个实例: 根据上方例图就会发现:atexit函数先注册四个fun函数,然后等待2秒,再打印"this is fun(n)"(如果main函数中输出部分不加\n,则main函数要输出的内容会先放到标准输出缓冲区中,当main中调用exit函数的时候,会做一些自身清理工作,同时刷新标准输出缓冲区中的内容),当执行到exit(0)时原创 2017-04-15 15:18:09 · 907 阅读 · 0 评论 -
进度条
源代码: #include #include int main() { char buffer[52] = {'\0'}; char ch[] = {'|', '/', '-' }; printf("\033[46m"); fflush(stdout); printf("\033[0m"); int i = 0; while(i <= 50) { printf("\原创 2017-04-15 16:01:42 · 453 阅读 · 0 评论 -
task_struct
什么是进程? 内核观点:担当分配系统资源(CPU时间,内存)的实体。 进程的两个基本元素是程序代码(可能被执⾏相同程序的其他进程共享)和代码相关联的数据集。进程是⼀种动态描述,但是并不代表所有的进程都在运行。(进程在内存中因策 略或调度需求,会处于各种状态) ⼴义上,所有的进程信息被放在⼀个叫做进程控制块的数据结构中,可以理解为进程属性的集合原创 2017-04-17 19:40:01 · 563 阅读 · 0 评论 -
Linux指令(粘滞位)
粘滞位 通常情况下用户只要对某个目录具备w写入权限,便可以删除该目录中的任何文件,而不论这个文件的权限是什么。 比如我们进行下面的操作: 我们可以通过chmod 指令修改文件的读、写、执行权限。 那么在root用户的身份在/test目录中创建文件file1,并查看其默认权限。 在这里我们可以看到,虽然/te原创 2017-03-28 17:19:54 · 774 阅读 · 0 评论 -
linux指令(stat date cal)
一、stat指令 ls 命令可能是每一个 Unix 使用者第一个学习的命令之一, 但它仅仅显示了 stat 命令能给出的信息的一小部分。 这里ll显示的时间仅仅是文件修改的时间 stat 命令从文件的索引节点获取信息。使用 stat 命令, 你会看到下面这些: 正如你可能已经了解的那样, 每一个系统里的文件都存有三组日期和时间, 它们包括最近修改时间(即使用 ls原创 2017-03-20 19:06:06 · 1347 阅读 · 0 评论 -
信号量
信号量 信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代原创 2017-07-08 12:45:13 · 583 阅读 · 0 评论