自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (8)
  • 收藏
  • 关注

原创 fork & exec时打开文件的变化

在分析linux系统调用fork,linux系统调用execve时,已经知道:1.fork时,子进程会复制父进程的打开文件描述符表2.exec时,进程的打开文件描述符表保持不变 用以下代码观察fork,exec打开文件的变化情况:父进程fork子进程,睡眠一定时间(方便命令行查看打开文件);子进程fork孙进程,睡眠一定时间;孙进程exec新程序,新程序也睡眠一定时间

2013-06-30 16:53:53 2128

原创 linux 系统调用fork vfork clone

fork:通过fork创建新进程vfork:主要用于马上执行exec的情况,因为马上就exec装入新的程序,所以可以去掉fork中分配新的地址空间等操作,进而加速进程创建clone:功能更强,参数更多;主要用于创建线程/父子进程资源共享等,可以通过设置相应的参数实现fork、vfork的功能 I.系统调用i.系统调用arch/x86/kernel/syscall_table

2013-06-29 12:02:18 2853

原创 c++ 虚函数表

c++中的虚函数作用主要是实现多态,用父类指针指向子类实例,通过父类指针调用子类成员函数,而这个成员函数在父类中被声明为虚函数。要实现父类指针调用子类成员函数,主要满足以下两个条件:1、子类实例指针转换成父类指针时,指针所指的子类实例内容必须与父类内容完全一致(成员及顺序);主要是通过在子类继承父类时,按继承顺序将父类内容与子类成员组成子类内容来实现,将子类实例指针偏移一定量就能得到父类指

2013-06-27 22:08:43 1212

原创 linux 虚拟文件系统VFS

与其它系统完美共存是linux的成功之处之一,linux可以透明挂载其它系统文件格式的磁盘或分区,如Windows的FAT32、NTFS等;linux使用虚拟文件系统VFS(Virtual Filesystem Switch)来支持多种类型的文件系统。VFS的思想是:将不同类型文件系统信息存放到内核中,linux所有文件系统支持的每个操作都有一个域与之对应,当读、写或其它功能调用时内核

2013-06-24 18:51:52 1916

原创 linux SysV IPC msg消息队列实现

消息队列是由存放在内核中的消息组成的链表,由IPC id标识。由msgget创建新队列或打开已经存在的队列由msgsnd将消息添加到消息队列尾,每个消息包括正整数标识的类型,非负的长度,及数据。由msgrcv从消息队列中取消息,不必按FIFO取消息,可以通过类型字段取相应的消息。 I.数据结构i.msg_queue 87 /* one msq_queue structu

2013-06-22 11:48:06 3219

原创 linux SysV IPC shm共享内存实现

共享内存可以使多个进程共享某段内存,由于不需要进程间数据复制,所以是速度最快的IPC。多个进程访问共享内存时需要同步机制,如进程A往共享内存中写数据时,进程B不能使用共享内存;通常采用信号量同步多进程访问共享内存。共享内存实现主要有以下几点:1.分配物理内存2.将物理内存映射到进程的地址空间;通过修改进程的页表,可以虚拟地址直接访问物理内存3.进程不再使用共享内存时,取消物理内

2013-06-21 21:41:30 4304

原创 linux SysV IPC sem信号量实现

信号量值是一个计数器,用于控制多进程对共享资源的访问;进程获取共享资源需要以下步骤:1.检查资源的信号量值2.如果信号量值是正,进程可以访问资源;进程将信号量值减1,表示进程已经使用了一个资源3.如果信号量值是0,进程被阻塞直到信号量值大于0;被阻塞进程被唤醒时重复执行步骤1注:检查信号量值和减1必须为原子操作 SysV信号量有以下特征:1.信号量是一个信号量值集合,在

2013-06-20 23:18:11 3453

原创 semop SEM_UNDO标识

当操作信号量(semop)时,sem_flg可以设置SEM_UNDO标识;SEM_UNDO用于将修改的信号量值在进程正常退出(调用exit退出或main执行完)或异常退出(如段异常、除0异常、收到KILL信号等)时归还给信号量。如信号量初始值是20,进程以SEM_UNDO方式操作信号量减2,减5,加1;在进程未退出时,信号量变成20-2-5+1=14;在进程退出时,将修改的值归还给信号量,信号

2013-06-19 21:45:59 5126

原创 linux SysV IPC实现

IPC(Interprocess Communication)表示进程间通信机制;System V IPC机制主要有消息队列、共享内存、信号量,linux中实现了SysV IPC。 I.SysV IPC创建/获取消息队列、共享内存、信号量的创建/获取API原型如下:int msgget(key_t key, int msgflg);int shmget(key_t key, s

2013-06-14 20:44:52 2523

原创 linux cred管理

I.credential管理linux系统中,一个对象操作另一个对象时通常要做安全性检查。如一个进程操作一个文件,要检查进程是否有权限操作该文件。linux内核中,credential机制的引入,正是对象间访问所需权限的抽象;主体提供自己权限的证书,客体提供访问自己所需权限的证书,根据主客体提供的证书及操作做安全性检查。证书管理术语:客体:指用户空间程序直接可以操作的系统对象,如进

2013-06-13 20:43:43 7586

原创 linux idr机制

I.idr机制i.idr介绍系统许多资源都用整数ID来标识,如进程ID、文件描述符ID、IPC ID等;资源信息通常存放在对应的数据结构中(如进程信息存放在task_struct中、ipc信息存放在ipc_perm中),id与数据结构的关联机制有不同的实现,idr机制是其中的一种。idr,id radix的缩写。idr主要用于建立id与指针(指向对应的数据结构)之间的对应关系。idr用

2013-06-07 21:45:23 8536 1

原创 linux TCP超时重传

TCP超时重传是保证TCP可靠性传输的机制之一,当超时后仍没有收到应答报文,就重传数据包并设置超时时钟(超时时间一般增大到原超时时间2倍);直到收到应答报文或超过最大重试次数。linux TCP超时重传是通过设置重传超时时钟icsk_retransmit_timer来实现的。零窗探测超时时钟与重传超时时钟共用icsk_retransmit_timer,根据icsk_pending是IC

2013-06-04 11:16:48 23427 3

C99标准(英文版)

C99是标准ISO/IEC 9899:1999的简称。 c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。

2014-03-15

存储技术原理分析:基于Linux_2.6内核源代码.zip

<> 与 <> 一起解压获得完整的pdf.

2014-03-14

存储技术原理分析:基于Linux_2.6内核源代码(部分)

与存储技术原理分析:基于Linux_2.6内核源代码.z01 与 存储技术原理分析:基于Linux_2.6内核源代码.zip 解压获得完整的pdf

2014-03-14

The Second Extended File System

This book is intended as an introduction and guide to the Second Extended File System, also known as Ext2. The reader should have a good understanding of the purpose of a file system as well as the associated vocabulary (file, directory, partition, etc). Implementing file system drivers is already a daunting task, unfortunately except for tidbits of information here and there most of the documentation for the Second Extended Filesystem is in source files. Hopefully this document will fix this problem, may it be of help to as many of you as possible.

2013-12-08

Beamer v3.0 with PSTricks

Beamer v3.0 with PSTricks KiJoo Kim (a.k.a. Daisyweb) November 4, 2004

2013-12-08

Beamer 快速入门

Beamer 快速入门 Rouben Rostamian [著] 黄旭华 [译]

2013-12-08

Beamer v3.0 Guide

Beamer v3.0 Guide KiJoo Kim (a.k.a. Daisyweb)

2013-12-08

python cookbook

This book is aimed at more experienced Python programmers who are looking to deepen their understanding of the language and modern programming idioms. Much of the material focuses on some of the more advanced techniques used by libraries, frameworks, and applications. Throughout the book, the recipes generally assume that the reader already has the necessary background to understand the topic at hand (e.g., general knowledge of computer science, data structures, complexity, systems programming, concurrency, C programming, etc.). Moreover, the recipes are often just skeletons that aim to provide essential information for getting started, but which require the reader to do more research to fill in the details. As such, it is assumed that the reader knows how to use search engines and Python’s excellent online documentation. Many of the more advanced recipes will reward the reader’s patience with a much greater insight into how Python actually works under the covers. You will learn new tricks and techniques that can be applied to your own code.

2013-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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