linux下文件

系统调用read()将阻塞调用进程,直到数据被拷贝进用户态地址空间。但系统调用write不同,它在数据被拷贝到页高速缓存(延迟写)后马上结束。 O_SYNC标志只影响写操作,它将阻塞调用进程,直到数据被有效地写入磁盘。 对磁盘文件来说,read,write方法能够确定正被访问的数据所在物理块的位置...

2016-04-26 08:54:51

阅读数 448

评论数 0

linux同步

如果进程正执行内核函数时,即它在内核态运行时,允许发生内核切换(被替换的进程是正在执行内核函数的进程),这个内核就是可抢占的。 所有进程切换都是由宏switch_to()来完成的。 使内核可抢占的目的是减少用户态进程的分派延迟,即从进程变为可执行状态到它实际开始运行之间的时间间隔。 只有当内核正在...

2016-04-19 22:17:45

阅读数 402

评论数 0

linux下进程通信

管道被看作是打开的文件,但在已安装的文件系统中没有相应的映像。 POSIX只定义了半双工的管道,因此即使pipe()系统调用返回了两个描述符,每个进程在使用一个文件描述符之前仍得把另外一个文件描述符关闭。 在linux中,popen()和pclose()都包含在C函数库里面。 对每个管道来说,内核...

2016-04-17 15:37:02

阅读数 331

评论数 0

linux下信号

信号是很短的信息,可以被发送到一个进程或一组进程。发送给进程的唯一信息通常是一个数,依次来标识信号。 POSIX标准引入了一类新的信号叫做实时信号,在linux中他们的编码范围是32-64.他们与常规信号有很大的不同,因为他们必须排队以便发送的多个信号能被接收到。 如果一个常规信号被连续发送多...

2016-04-03 15:59:41

阅读数 399

评论数 0

linux系统调用

Unix通过系统向内核发出系统调用实现了用户态进程和硬件设备之间的大部分接口。 系统调用通过软中断向内核发出一个明确的请求。 lib的标准C库所定义的一些API引用了封装例程(其唯一目的就是发布系统调用)。通常情况下,每个系统调用对应一个封装例程,而封装例程定义了应用程序使用的API。 一个API...

2016-04-03 13:54:50

阅读数 343

评论数 0

linux下进程

从内核的观点来看,进程的目的就是担当分配系统资源(CPU时间,内存等)的实体。 尽管父子进程共享含有程序代码的页,但是他们各自有独立的数据拷贝(堆和栈),因此子进程对一个内存单元的修改对父进程是不可见的。 多线程应用程序多个执行流的创建,处理,调度整个都是在用户态进行的(通常使用POSIX兼容的p...

2016-04-01 22:09:30

阅读数 905

评论数 0

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