Flash磨损均衡技术解析(wear-leveling)

1、命令的传输传输层接收到来自于应用层的命令请求后,根据命令的不同将相关寄存器中的信息按照SATA标准协议规定的格式封装为FIS传递给数据链路层。当数据链路层成功接收后,向传输层反馈一个传输完成的状态标志。传输层接收到来自数据链路层的FIS后,判断该FIS是否有效以及类型。如果是有效的类型,则按照...

2018-03-06 14:39:25

阅读数 2657

评论数 0

消息队列

消息队列是消息的链表(不是文件),存放在内存中,由内核维护。消息队列的特点:---- 消息队列中的消息是有类型的。(读取的时候可以根据消息的类型读取消息,没有必要先进先出)---- 消息队列中的消息是有格式的。---- 消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按...

2018-03-05 16:40:40

阅读数 132

评论数 0

聊天软件-管道实现

carie和vally之间的对话talk_carie.c如下:#include <stdio.h> #include <stdlib.h> #include <string.h&a...

2018-03-01 20:57:43

阅读数 118

评论数 0

文件描述符

文件描述符概述:1)文件描述符是非负整数 >=0,是文件的标识。2)用户使用文件描述符(file descriptor)来访问文件。3)利用open打开一个文件时,内核会返回一个文件描述符。每个进程都有一张文件描述符的表,进程刚被创建时,标准输入、标准输出、标准错误输出设备文...

2018-03-01 14:20:11

阅读数 171

评论数 0

fcntl函数

编程时可通过fcntl函数设置文件的阻塞特性。设置为阻塞:fcntl(fd,F_SETFL,0);设置为非阻塞:fcntl(fd,F_SETFL,O_NONBLOCK);fcntl -- manipulate file descriptorint fcntl(int fd, int cmd,......

2018-03-01 14:02:13

阅读数 157

评论数 0

管道-命名管道(FIFO)

命名管道(FIFO)和管道(pipe)基本相同,但也有一些不同的地方:1)FIFO在文件系统中作为一个特殊的文件而存在,但FIFO中的内容却存放在内存中。(某个目录下有一个文件名)2)当使用FIFO的进程退出后,FIFO文件将继续保存在文件系统中以便以后使用。3)FIFO有名字,不相关的进程可以通...

2018-02-28 17:41:37

阅读数 197

评论数 1

复制文件描述符dup和dup2

文件描述符的复制:dup和dup2是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。>> int dup(int oldfd);>> int dup2(i...

2018-02-27 17:51:41

阅读数 137

评论数 0

管道-无名管道

管道(pipe)概述:(怎样使用管道实现父子进程间通信)不相关的两个进程无法通过无名管道进行进程间通信。管道又称无名管道(没有名字),无名管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符。管道是最古老的UNIX IPC方式,其特点是:1>   半双工,数据在同一时...

2018-02-12 15:19:42

阅读数 125

评论数 0

可重入函数和信号集

--- 可重入函数:可重入函数是指函数可以由多个任务并发使用,而不必担心数据错误。编写可重入函数:>>不使用(返回)静态的数据、全局变量(除非用信号量互斥)>>不调用动态内存分配、释放函数。&g...

2018-02-11 16:17:31

阅读数 90

评论数 0

信号-signal

1、Kill:调用kill函数终止进程#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int signum);功能:给指定的进程发送编号...

2018-02-06 15:39:04

阅读数 83

评论数 0

IPC和Kill

进程间通信(IPC:Inter Processes Communication) 进程是一个独立的资源分配单元,不同进程(通常指用户进程)之间的资源是独立的,没有关联。 不能在一个进程中直接访问另一个进程的资源(例如打开的文件描述符) 进程不是孤立的,不同的进程需要进程信息的交互和状态的传递...

2018-02-05 16:17:35

阅读数 72

评论数 0

exit和vfork

在linux中,可以用以下函数结束正在运行的进程。>> exit函数—库函数#include <stdlib.h>void exit(int value);参数:value是返回给父进程的参数,低8位有效。&a...

2018-02-03 18:07:51

阅读数 76

评论数 0

写缓冲和sleep

缓冲 ---- 行缓冲:标准C库的输入输出函数,向屏幕(标准输出)写东西的时候是行缓冲的。Write系统函数,无缓冲 使用库函数往屏幕上写东西时是行缓冲。系统调用是无缓冲的。 >> 也就是输出的内容会存在缓冲区里,直到缓冲区里有‘\n’才刷新缓冲区。 >> 或者调用...

2018-02-02 16:16:17

阅读数 65

评论数 0

等待子进程结束wait()和waitpid()

父子进程有时需要简单的进程间同步,如父进程等待子进程的结束。linux提供了以下两个等待函数:wait(),waitpid().需要包含头文件:#include <sys/types.h>#include <sys/wait.h&a...

2018-02-02 15:07:12

阅读数 1045

评论数 0

孤儿进程和僵尸进程

1)孤儿进程(Orphan Process):父进程已亡,即父进程运行结束,但是子进程未结束的进程。孤儿进程的父进程是1号进程-即init进程。父进程死亡之后终端释放。此时不能用ctrl-c结束进程。#include <sys/wait.h> #incl...

2018-02-02 11:03:25

阅读数 81

评论数 0

进程控制块和进程号

进程控制块PCB - process control block进程号pid唯一的标识了一个进程。>> OS是根据PCB来对并发执行的进程进行控制和管理的。系统在创建一个进程的时候会开辟一段内存空间存放与此进程相关的PCB数据结构。&gt...

2018-02-01 15:18:53

阅读数 177

评论数 0

进程创建-fork

fork函数:创建一个新进程,需要包含下面的头文件 #include #include pid_t  fork(void); 功能:fork()函数用于从一个已存在的进程中创建一个新进程,新进程称为子进程,原进程称为父进程。 返回值:        >> 成功:子进程中...

2018-02-01 15:01:07

阅读数 656

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭