操作系统
RunBoying
这个作者很懒,什么都没留下…
展开
-
peterson互斥算法 1981
源自:>,page 36peterson互斥算法 1981 #define FALSE 0 #define TRUE 1 #define N 2 /*进程数*/ int turn; /*轮到谁了?*/ in原创 2011-12-04 00:24:24 · 1129 阅读 · 0 评论 -
linux进程通信的几种方式
一 管道 1有名管道 popen函数建立 所有进程按权限取得管道文件的访问权限 一直存在文件系统里面,有实际的目录地址,能被所有进程访问. 2无名管道 pipe函数建立 只有相关的进程,及创建管道(pipe)的进程及其子进程可以访问 偏移信息没有像文件那样存在,所以进程不能lseek管道,即不能随机读管道 所有进程结束使用管道,内核原创 2011-12-10 17:11:28 · 519 阅读 · 0 评论 -
函数指针在linux和win上的一个区别
函数指针在linux和win上的一个区别linux编译器 gccwin编译器 vc2005#include #include void (*f)(int);void (*g())(int){ return f;}#define NO_INT (void (*)())0#define HAS_INT (void (*)(int))0v原创 2011-12-12 09:47:31 · 559 阅读 · 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 · 668 阅读 · 0 评论 -
系统架构学习知识点
系统架构学习知识点转载自 : http://sd.csdn.net/a/20110720/301922.html3.系统架构负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)多层分布式系统–客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。CDN系统–就近访问,内容边缘化。P2P式转载 2011-12-15 11:38:10 · 958 阅读 · 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 · 1457 阅读 · 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 · 592 阅读 · 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 · 620 阅读 · 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 · 1922 阅读 · 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 · 2379 阅读 · 0 评论 -
LINUX 守护进程
一 概念 英文名字daemon,又名精灵进程,常在系统开机的时候加载,系统关闭的时候才终止.在windows上就是services 二 ps -axj 显示进程 -a 由其他用户拥有的进程状态 -x 显示没有控制终端的进程状态 -j 显示与作业有关的信息 三 系统daemon进程 pid 为0的进程为内核进程 pid 为原创 2011-12-23 15:46:40 · 698 阅读 · 0 评论 -
LINUX 线程基础, 线程同步,线程控制
一 线程基础 1)线程全称控制线程 2)多线程的优势: a) 比进程方便,可以共享相同的内存空间及文件描述符 b) 可以用于多个任务,而这些任务如果用单进程来实现是串行, 在多线程里面由于CPU的调度可以实现穿插执行 c) 用于交互程序,将用户输入输出与其他部分分开,优化性能 3)如何知道系统是否多线程pth原创 2011-12-23 15:47:08 · 847 阅读 · 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 · 695 阅读 · 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 · 866 阅读 · 0 评论 -
设置网卡混杂模式
设置网卡混杂模式 参考http://blog.csdn.net/aaa6695798/article/details/4008340转载 2011-12-08 17:56:17 · 838 阅读 · 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 · 1443 阅读 · 0 评论 -
文件
根目录文件名字叫'/'目录文件的属性是没有存在目录中的,因为硬链接目录的时候,多个副本之间同步很麻烦文件名中不能存在'/'和空操作符null每个目录文件中存在2个文件,'.'代表自己,'..'代表父目录原创 2011-12-06 17:41:46 · 347 阅读 · 0 评论 -
linux 进程间的关系
1.伪终端的概念 即能处理终端login,又能处理网络login2.进程组是一组进程的集合,进程组的id就是进程组长的进程id3.只有进程组里面的最后一个进程结束,这个进程组的生命周期才结束(疑问?如果父进程结束了,那么子进程的父进程已经变成了init,那么这个时候都不是原来的进程组了!)4.多个进程组组成了一个会话session,一个会话里面有前台进程和后台进程,所有del原创 2011-12-06 17:42:50 · 627 阅读 · 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 · 3705 阅读 · 0 评论 -
linux 进程控制说明
内核进程进程id 名字 说明 0 swap 用于交换 系统进程 1 init 用于启动系统 非系统进程 程序文件sbin/init 读配置文件/etc/init.d 2 pagedaemon 页守护进程 系统进程进程相关函数的重要说明1) fork之后,父子进程没有规定谁先执行,依赖于系统调度原创 2011-12-06 17:41:00 · 683 阅读 · 0 评论 -
LINUX修改IP地址
以前都是使用自动IP动态分配获取IP的,虽然每次获得的ip都是相同的,但我还是决定自己设置一个IP。输入命令:[root@localhost ~]# ifconfig eth0 219.246.177.160 netmask 255.255.255.0 upping以下177网段的ip是可以ping通的,但是ping别的网段无法ping通[root@localhost ~]# ping转载 2011-12-06 17:39:18 · 846 阅读 · 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 · 492 阅读 · 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 · 752 阅读 · 0 评论 -
VS在函数返回的时候检测内存泄漏
#include #include #include /************************************************************************//* 实现代码在dbgheap.c *//*****原创 2011-12-09 17:14:55 · 600 阅读 · 0 评论 -
linux makefile写法的学习
本文转载自CSDN博客,http://blog.csdn.net/Sunboy_2050/archive/2010/07/06/5717253.aspx1.无makefile的编译过程 gcc -c file.c -o file.o gcc -o file file.o file2.o2.初级makefile的写法 Make命令会默认调用makefile文件转载 2011-12-17 17:27:46 · 1660 阅读 · 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 · 2582 阅读 · 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 · 7356 阅读 · 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 · 3006 阅读 · 0 评论 -
滑动窗口——TCP可靠传输的实现
转载自:http://hi.baidu.com/bellgrade/blog/item/935a432393b949ae4723e828.html (1).窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序转载 2011-12-09 00:08:34 · 1037 阅读 · 0 评论 -
linux 进程间通信的几种方式
一 管道技术 1)概念 历史上是半双工的,只能单向流动,目前有系统提供全双工管道 linux上全双工管道由unix域套接字实现 只能在具有公共祖先的进程间使用 2)shell 中的命令序列 中 标准输入输出的重定向就是通过管道连接的 3)创建管道 pipe(int fields[2]) 返回: fields[0]为读描述符,f原创 2011-12-23 15:47:40 · 813 阅读 · 0 评论