
操作系统
RunBoying
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
peterson互斥算法 1981
源自:>,page 36 peterson互斥算法 1981 #define FALSE 0 #define TRUE 1 #define N 2 /*进程数*/ int turn; /*轮到谁了?*/ in原创 2011-12-04 00:24:24 · 1183 阅读 · 0 评论 -
linux进程通信的几种方式
一 管道 1有名管道 popen函数建立 所有进程按权限取得管道文件的访问权限 一直存在文件系统里面,有实际的目录地址,能被所有进程访问. 2无名管道 pipe函数建立 只有相关的进程,及创建管道(pipe)的进程及其子进程可以访问 偏移信息没有像文件那样存在,所以进程不能lseek管道,即不能随机读管道 所有进程结束使用管道,内核原创 2011-12-10 17:11:28 · 557 阅读 · 0 评论 -
函数指针在linux和win上的一个区别
函数指针在linux和win上的一个区别 linux编译器 gcc win编译器 vc2005 #include #include void (*f)(int); void (*g())(int) { return f; } #define NO_INT (void (*)())0 #define HAS_INT (void (*)(int))0 v原创 2011-12-12 09:47:31 · 600 阅读 · 0 评论 -
LINUX标准io默认都是阻塞的
#include #include #include int main() { int s_in, s_out, s_err; s_in= fcntl(STDIN_FILENO, F_GETFL); s_out= fcntl(STDOUT_FILENO, F_GETFL); s_err= fcntl(STDERR_FILENO, F_GETFL); if (O_NONBL原创 2011-12-21 11:31:53 · 723 阅读 · 0 评论 -
系统架构学习知识点
系统架构学习知识点 转载自 : http://sd.youkuaiyun.com/a/20110720/301922.html 3.系统架构 负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读) 多层分布式系统–客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。 CDN系统–就近访问,内容边缘化。 P2P式转载 2011-12-15 11:38:10 · 1011 阅读 · 0 评论 -
linux打印出信号值对应的字符串值
linux打印出信号值对应的字符串值 1 #include 2 #include 3 4 5 int main() 6 { 7 8 printf("%s\n", strsignal(SIGUSR1)); //函数 9 printf("%s\n", sys_siglist[SIGUSR1]); //数组 10 ret原创 2011-12-14 14:58:55 · 1510 阅读 · 0 评论 -
undefined reference to `pthread_create'
转载自 http://www.cnblogs.com/feefk/archive/2009/12/09/1620557.html 刚刚学习linux,今天在试一个线程例子时,结果出现如下错误: pthread.c:(.text+0x58): undefined reference to `pthread_create' pthread.c:(.text+0xab): undefine转载 2011-12-14 16:02:25 · 635 阅读 · 0 评论 -
linux信号归纳及整理
1.信号的概念 信号是一种软中断,提供了一种处理异步事件的方法,早期信号是不可靠的,各种系统提供了多少不一样的信号. v7 15种 svr4和4.4bsd 31种 freebsd,linux,mac os提供了31种 solaris 提供了38种 linux和solaris支持用户额外定义的信号 不存在编号为0的信号 0信号原创 2011-12-06 17:42:22 · 657 阅读 · 0 评论 -
linux2次锁互斥变量死锁的例子
linux2次锁互斥变量死锁的例子 -------------------------------------------------- 1 #include 2 #include 3 #include 4 5 6 pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 7 8 vo原创 2011-12-15 14:14:01 · 1981 阅读 · 1 评论 -
linux 获取远程系统时间的例子
linux进程通信 获取远程系统时间的例子 server.c -------------------- #include #include #include #include #include #include #include #include #include #include #include #define LOCAL_IP "192.168.59.194"原创 2011-12-23 15:48:46 · 2425 阅读 · 0 评论 -
LINUX 守护进程
一 概念 英文名字daemon,又名精灵进程,常在系统开机的时候加载,系统关闭的时候才终止.在windows上就是services 二 ps -axj 显示进程 -a 由其他用户拥有的进程状态 -x 显示没有控制终端的进程状态 -j 显示与作业有关的信息 三 系统daemon进程 pid 为0的进程为内核进程 pid 为原创 2011-12-23 15:46:40 · 749 阅读 · 0 评论 -
LINUX 线程基础, 线程同步,线程控制
一 线程基础 1)线程全称控制线程 2)多线程的优势: a) 比进程方便,可以共享相同的内存空间及文件描述符 b) 可以用于多个任务,而这些任务如果用单进程来实现是串行, 在多线程里面由于CPU的调度可以实现穿插执行 c) 用于交互程序,将用户输入输出与其他部分分开,优化性能 3)如何知道系统是否多线程pth原创 2011-12-23 15:47:08 · 909 阅读 · 0 评论 -
linux时间类型
linux时间类型 日历时间 time_t类型保存 表示从1970年1月1日 0:0:0经过的秒数 进程Cpu时间 clock_t 时钟时间 进程运行的总的时间 用户CPU时间 执行用户指令需要的时间 系统CPU时间 内核执行的时间 通过time命令可以获取进程cpu时间 time_t 包含的是经过的秒数 t原创 2011-11-28 17:20:10 · 738 阅读 · 0 评论 -
C数据类型对齐规则包含位域
C数据类型对齐规则包含位域 相关的操作: #pragma pack(n) 设置为n字节对齐 #pragma pack(push) 保存当前的对齐字节数 #pragma pack(pop) 还原默认对齐字节数 vc默认8字节对齐 1.对于结构体的各个成员,第一个成员位于偏移为0的位置 2.对于结构体的以后的每个成员的开始偏移位置必须是MIN(#pragma pack()指定的数原创 2011-12-16 17:31:02 · 909 阅读 · 0 评论 -
设置网卡混杂模式
设置网卡混杂模式 参考 http://blog.youkuaiyun.com/aaa6695798/article/details/4008340转载 2011-12-08 17:56:17 · 884 阅读 · 0 评论 -
关于空指针类型的类变量的成员函数访问的问题
下面代码会有什么输出? #include using namespace std; class A { public: void fun() { cout<<"fun"<<endl; } virtual void vfun() { cout<<"vfun"<<endl; } private: int a; }; int main()原创 2011-12-09 00:26:55 · 1490 阅读 · 0 评论 -
文件
根目录文件名字叫'/' 目录文件的属性是没有存在目录中的,因为硬链接目录的时候,多个副本之间同步很麻烦 文件名中不能存在'/'和空操作符null 每个目录文件中存在2个文件,'.'代表自己,'..'代表父目录原创 2011-12-06 17:41:46 · 387 阅读 · 0 评论 -
linux 进程间的关系
1.伪终端的概念 即能处理终端login,又能处理网络login 2.进程组是一组进程的集合,进程组的id就是进程组长的进程id 3.只有进程组里面的最后一个进程结束,这个进程组的生命周期才结束 (疑问?如果父进程结束了,那么子进程的父进程已经变成了init,那么这个时候都不是原来的进程组了!) 4.多个进程组组成了一个会话session,一个会话里面有前台进程和后台进程,所有del原创 2011-12-06 17:42:50 · 678 阅读 · 0 评论 -
linux内存泄漏检查工具
Valgrind 内存检测工具1. ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。 2. Dmalloc-Debug Malloc Library. 3. Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。 4. Leaky-Linux下检测内存泄漏的程序。 5.转载 2011-12-06 17:40:29 · 3780 阅读 · 0 评论 -
linux 进程控制说明
内核进程 进程id 名字 说明 0 swap 用于交换 系统进程 1 init 用于启动系统 非系统进程 程序文件sbin/init 读配置文件/etc/init.d 2 pagedaemon 页守护进程 系统进程 进程相关函数的重要说明 1) fork之后,父子进程没有规定谁先执行,依赖于系统调度原创 2011-12-06 17:41:00 · 715 阅读 · 0 评论 -
LINUX修改IP地址
以前都是使用自动IP动态分配获取IP的,虽然每次获得的ip都是相同的,但我还是决定自己设置一个IP。输入命令: [root@localhost ~]# ifconfig eth0 219.246.177.160 netmask 255.255.255.0 up ping以下177网段的ip是可以ping通的,但是ping别的网段无法ping通 [root@localhost ~]# ping转载 2011-12-06 17:39:18 · 916 阅读 · 0 评论 -
vi/vim 十分常用的命令
vi十分常用的命令 替换字符串 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new 在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g 在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g 在文件内替换所有的字符串 old 为新原创 2011-12-05 09:03:48 · 530 阅读 · 0 评论 -
linux 时间类型
linux时间类型 日历时间 time_t类型保存 表示从1970年1月1日 0:0:0经过的秒数 进程Cpu时间 clock_t 时钟时间 进程运行的总的时间 用户CPU时间 执行用户指令需要的时间 系统CPU时间 内核执行的时间 通过time命令可以获取进程cpu时间 time_t 包含的是经过的秒原创 2011-12-06 17:41:22 · 787 阅读 · 0 评论 -
VS在函数返回的时候检测内存泄漏
#include #include #include /************************************************************************/ /* 实现代码在dbgheap.c */ /*****原创 2011-12-09 17:14:55 · 639 阅读 · 0 评论 -
linux makefile写法的学习
本文转载自优快云博客,http://blog.youkuaiyun.com/Sunboy_2050/archive/2010/07/06/5717253.aspx 1.无makefile的编译过程 gcc -c file.c -o file.o gcc -o file file.o file2.o 2.初级makefile的写法 Make命令会默认调用makefile文件转载 2011-12-17 17:27:46 · 1696 阅读 · 0 评论 -
Fedora10 允许root登录及设置密码
1.为root设置密码 装好fedora10后,root密码这个时候空的。需要登录到普通帐号。 然后输入passwd root 按照提示输入新密码即可。 2.允许root登录 su root 输入root密码 然后vi /etc/pam.d/gdm 按a 在#auth required pam_succeed_if.so user != ro原创 2011-12-18 09:20:10 · 2630 阅读 · 0 评论 -
kill与kill -9与killall
很多时候,会有人建议你,如果kill杀不掉一个进程,就用kill -9. 为什么? kill是Linux下常见的命令。其man手册的功能定义如下: kill – send a signal to a process 明朗了,其实kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以ki原创 2011-12-18 09:20:40 · 7427 阅读 · 1 评论 -
GDB工具如何使用断点信息
在Linux平台下,使用最多的就是调试工具GDB.通过命令gcc -g test.c 。默认会生成a.out文件,这个文件由于参数-g的原因加入了调试信息。所以可以使用gdb来加载并调试,但是在使用断点的时候,你会很郁闷。真的。比如下面先来看这个过程。 /****** test.c 代码 ********/ 1 #include 2 3 void docout()原创 2011-12-08 23:38:20 · 3080 阅读 · 0 评论 -
滑动窗口——TCP可靠传输的实现
转载自: http://hi.baidu.com/bellgrade/blog/item/935a432393b949ae4723e828.html (1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序转载 2011-12-09 00:08:34 · 1090 阅读 · 0 评论 -
linux 进程间通信的几种方式
一 管道技术 1)概念 历史上是半双工的,只能单向流动,目前有系统提供全双工管道 linux上全双工管道由unix域套接字实现 只能在具有公共祖先的进程间使用 2)shell 中的命令序列 中 标准输入输出的重定向就是通过管道连接的 3)创建管道 pipe(int fields[2]) 返回: fields[0]为读描述符,f原创 2011-12-23 15:47:40 · 855 阅读 · 0 评论