小威
...
摘要: 1.进程间通信 : 进程之间交换数据必须通过内核, 在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区, 进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 2。进程的用户空间相互隔离, 内核空间相互共享 3.管道的长度: 64K 4.使用mkfifo * 来新建一个管道文件 5.有名管道 : 用于无亲缘关系进程的通信,和有亲缘关系进程的通信。 无名管道:用于有亲缘关系进程的通信 6.管道 :是一种最基本的IPC机制, 由pipe创建 函数原型 : #include int pipe(int filedes[2])... 阅读全文
posted @ 2013-09-09 18:32 小威_ 阅读(165) 评论(0) 推荐(0)
摘要: 1.物理地址-------MMU------》虚拟地址----启动进程---->进程空间地址 2.Uxworks FreeRTOS Ucos/2 3. volatile(不优化) register(尽量优化) 4.每个进程在内核中都有一个进程控制块来维护相关的信息, Linux内核的进程控制块是tast_struct结构体 5.两个重要的系统调用 fork(刀叉, 民间的, 分叉) 和 exec(执行) fork的作用 :根据一个现有的进程复制出一个新进程, 原来的进程称为父进程,新的进程称为子进程 例外 : 子进程PCB中的进程id和父进程是不同的 ... 阅读全文
posted @ 2013-09-09 18:06 小威_ 阅读(147) 评论(0) 推荐(0)
摘要: 1.close(fd) : f->conunt减1,如果结果为0,内核会自动关闭文件结构体。 2.内核数据结构 3.f->count : 指向文件结构体的文件描述符个数 4.已打开的文件在内核中用file结构体表示, 文件描述符表中的指针指向file结构体 5.file_operations结构体中的release成员用于完成用户程序的close请求,之所以叫release而不叫close是因为它不一定真的关闭文件,而是减少引用计数, 只有引用计数减少到0才关闭文件 6.每个file结构体都有一个指向dentry结构体的指针,为了减少读盘次数,内核缓存了目录的树状结构,称为 : . 阅读全文
posted @ 2013-09-05 19:47 小威_ 阅读(158) 评论(0) 推荐(0)
摘要: 1.推荐书籍 《编程珠玑》 2.磁盘碎片整理 : 本质是整理块 3.对目录 : r : 浏览子文件夹和文件 ls w : 创建和删除子文件夹和文件 mkdir touch rm rmdir mv x : 进入该目录 cd 4.磁盘是一种顺序的存储介质 5.磁盘分区格式化成ext2文件系统后的存储布局:Boot Block (启动块) Block group0(块组)Block group n(块组) Block group0分布Super Block(超级块)Group Descriptor Table(块组描述符表) ... 阅读全文
posted @ 2013-09-04 19:30 小威_ 阅读(128) 评论(0) 推荐(0)
摘要: 1.阻塞分为: 完全阻塞, 不阻塞, 延时阻塞 2.管理操作系统的方式: 1. 轮询,2. 中断 3./dev/tty : 当前终端 5.harddisk 使用block来管理 memory 使用page来管理 6.如果在open一个设备时指定了O_NONBLOCK标志, read/write就不会阻塞,以read为例, 如果设备没有数据到达就返回-1, 同时置errno为EWOULDBLOCK(或者EAGAIN) 7.fcntl : (对设备寄存器进行读写) 可以使用fcntl函数改变一个已打开的文件的属性, 可以重新设置读, 写, 追加, 非阻塞等标志,而不必重新o... 阅读全文
posted @ 2013-09-03 18:26 小威_ 阅读(146) 评论(0) 推荐(0)
摘要: 1 #ifndef _FILE_H_ 2 #define _FILE_H_ 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include "file.h"11 #include "show.h"12 13 #define MAX 409614 #define MAX_WORD 52015 16 typedef struct word17 {18 char *str;19 int counter;20 }word_t;21 22 extern void wri 阅读全文
posted @ 2013-09-02 19:00 小威_ 阅读(183) 评论(0) 推荐(0)
摘要: 1.指针是无符号型整形 2.(&a + 1) : 跳过a类型的长度 3. .bss段 .txt代码段 .data :数据段 4. 指向只读数据段的指针地址都相同(因为只读数据段不可更改) 6. 在汇编中 : 标号的本质是: 地址 使用中断切换入内核空间 7.字符数组是两份拷贝 字符指针一份拷贝 8.用户空间 : 用户程序---------printf, putchar, fputs---------------libc----------buffer 内核空间 : 内核 两着之间通过write进行连接 9.UNIX的传统是Everything... 阅读全文
posted @ 2013-09-02 18:52 小威_ 阅读(149) 评论(0) 推荐(0)
摘要: 排序与查找 1.冒泡排序 : 若有n个元素,第一个元素和第2个元素比较, 若为逆序,则交换,然后比较第2个和第3个元素,依次类推,直到第n - 1和n 进行过比较为止, 这称为第一躺冒泡,结果使最大的元素被安置到了最后一个元素的位置上,然后进行第二躺冒泡,参与比较的元素个数为n-1, 依次类推, 冒泡躺数位K(1 a[j + 1]) {11 itemp = a[j];12 a[j] = a[j + 1];13 a[j + 1] = itemp;14 ... 阅读全文
posted @ 2013-08-23 19:15 小威_ 阅读(199) 评论(0) 推荐(0)
摘要: 一个简单学生信息管理系统。 功能 : 1. 可以读写文件内容 2.可以显示学生信息(只写了id name chinese math ave 五项信息) 3.可以删除学生信息 4.可以添加学生信息 1.头文件 1 #ifndef _HEAD_H_ 2 #define _HEAD_H_ 3 4 #include 5 #include 6 #include 7 #include 8 9 #define MAX_NAME 3710 #define MAX 102411 #define MAX_DATA 5112 13... 阅读全文
posted @ 2013-08-22 15:19 小威_ 阅读(533) 评论(0) 推荐(0)
摘要: 1.POSIX : 可移植性操作系统接口 2.void * calloc(size_t nmemb, size_t size) void *realloc(void *ptr, size_t size) 3.l链表的两个术语 : 头结点 : 链表的首个数据 头指针 : 保存头结点的地址 4.链表与数组的优缺点: 1 、链表的大小可以动态变化,数组的长度不可动态变化 2 、数组是线性存储,数据可以进行随机存取;链表是 链式存储,不可随机存取,只能顺序存取。 3 、数组插入或删除元素时,需要大规模搬移数据;链表插入或删除数据比较方... 阅读全文
posted @ 2013-08-20 23:47 小威_ 阅读(159) 评论(0) 推荐(0)