- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 验证管道的容量以及管道的组织形式
注: 本人使用的Linux的内核版本:1 查看并验证系统管道的容量 通过ulimit -a命令查看自己系统下的管道容量 一次原子写入为512bytes*8=4096bytes 查看缓存条目个数命令:cat /usr/src/kernels/2.6.32-431.el6.i686/include/linux/pipe_fs_i.h 所以:pipe的容量:51
2017-02-28 19:52:56 454
原创 编写一个简单的shell
编写一个简单的shell:今天只是写个框架,后面会完善shell ,注:暂且不支持内建命令,不支持重定向,不支持管道 先介绍一下shell:Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不属于内核部分,而是在核心之外,是操作系统的外壳程序,以用户态方式运行。其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核心为每个终端用户建立
2017-02-28 17:24:01 10064
原创 Linux下IPC主题一————消息队列
一 什么是消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与管道不同的是,消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先⼊入先出。消息队列与命名管道有一样的不足,就是每个消息的最⼤大长度是有上限的(MSG
2017-02-27 19:05:42 489
原创 Linux下的FILE结构体
struct file结构体定义在/linux/include/linux/fs.h(Linux 2.6.11内核)中,其原型是:struct file { /* * fu_list becomes invalid after file_free is called and queued via * fu_rcuhead for RCU fr
2017-02-19 20:34:26 3032
原创 Linux下的特殊权限s t i a
Linux下的文件权限除了r w x,还有 s t i a。本篇文章主要描述 s t 这两个权限,i a 权限大概描述下权限s:只能应用在可执行程序上,允许任意⽤用户或用户组在执⾏文件时以文件拥有者的⾝身份执⾏,文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令
2017-02-19 20:05:51 504
原创 exit()函数,_exit()函数,_EXIT()函数 和atexit函数
(1)exit() _exit() _Exit() #include : void exit( int status ); void _Exit( int status ); #include : void _exit( int status );在图1中可以看出:这三个函数⽤用于正常终⽌止⼀一个程序,_exit和_Exit⽴立即进⼊入内核,而exit则
2017-02-19 19:06:30 775
原创 操作系统的进程调度算法
调度也称dispatcher 这是内核的主要职责之一就是决定该轮到哪个任务运行了多数实时内核是基于优先级调度算法的每个任务根据其重要程度的不同被赋予一定的优先级基于优先级的调度法指CPU 总是让处在就绪态的优先级最高的任务先运行然而究竟何时让高优先级任务掌握CPU 的使用权有两种不同的情况这要看用的是什么类型的内核是非占先式还是占先式的内核,一个良好的任务调度算法应该主要体现在以下几个方面
2017-02-18 20:50:45 750
原创 二叉树的线索化以及 线索化的先序,中序,后序遍历
先简要说下什么线索化二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历。用二叉树作为存储结构时,取到一个节点,只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继。由于有n个结点的二叉链表中必定存在n+1个空指针域,因此充分利用这些空指针域来存放结点的前驱和后继信息。本篇主要介绍二叉树的前序和中序线索化以及遍历,下篇介绍后序线索化以及遍
2017-02-18 20:03:01 1938
原创 【二叉树】二叉树后序线索化以及后序遍历
构建节点:多了双亲节点struct BinaryTreeNodeThd{ BinaryTreeNodeThd(const T& data) : _data(data) , _pLeft(NULL) , _pRight(NULL) , _pParent(NULL) , _LeftThread(LINK) , _RightThread(LINK) {} T _data; Bi
2017-02-18 17:00:32 6540
原创 Linux下PCB的task_struck结构体
在linux中,把每一个进程的基本信息抽象成一个结构体,这就是task_struct结构体,在include\linux\sched.h文件中定义。 一说到进程,就要想到task_struct结构体。每个进程都会被分配一个task_struct结构,它包含了这个进程的所有信息。在任何时候,操作系统都能跟踪这个结构的信息。struct task_struct {TA
2017-02-17 22:26:49 822
原创 在Linux下编写一个进度条的小程序:C和shell
写一个简单的进度条了解三个方面的知识:进度条的实现原理,Linux下的回车,以及缓冲区(1)进度条的实现原理:定义一个102的字符数组bar[102],首先第一个位置bar[0] ='\0',在while循环中:每次更新从0的位置开始写入n 个‘*’(每次从开始位置写入 涉及到回车问题),更新到100结束,n来控制进度条的进度或者写入多少个*。(2)Linux下的回车问题:Unix 系
2017-02-17 13:35:25 1634
原创 centOS6.5 配置vim
1.在你的工作目录下(ls -a)查看有没有 .vimrc 文件 没有新建一个 下载配置内容: http://www.linuxidc.com/files/2016/05/vim/vimrc.zip 将其.vimrc 放在 工作目录下2 下载并安装Taglist点击下载插件:http://www.vim.org/scripts/script.php?script
2017-02-15 20:57:10 1833 1
原创 简述Linux下stat查看文件的三个时间点
stat命令查看文件的信息:stat查看文件信息的三个时间点(1)Access:文件访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件使用more,cat,less, head,tail命令。ls、stat命令都不会修改文件的访问时间。ls -ul显示的文件最后访问时间。(2)Modify:文件修改时间,文件内容修改一次,这个时间就会更新。比如对这个文件使用vim命令
2017-02-14 20:26:12 1412
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人