??
2.5.4
客户/服务器模型
Windows操作系统服务、受保护子系统和应用程序都采用客户/服务器计算模型构造,客户/服务器模型是分布式计算中的一种常用模型。
客户/服务器结构的优点如下:
简化了执行体。可以在用户态服务器中构造各种各样的API,而不会有任何冲突或重复;可以很容易地加入新的API。
提高了...
分类:
其他好文 时间:
2016-07-10 19:12:34
阅读次数:
245
转自:https://yq.aliyun.com/articles/5865 摘要: 简单描述了x86 32位体系结构下Linux内核的用户进程和内核线程的线性地址空间和物理内存的联系,分析了高端内存的引入与缺页中断的具体处理流程。先介绍了用户态进程的执行流程,然后对比了内核线程,引入高端内存的概念 ...
分类:
系统相关 时间:
2016-07-10 16:35:20
阅读次数:
424
ANSI C C语言标准库函数:用户态 Windows和Linux平台通用 文件流指针:FILE* fopen、fclose、fwrite、fread... POSIX Linux系统调用函数:内核态 仅能在Linux系统中使用 文件描述符:file 结构体 open、close、write、rea ...
分类:
其他好文 时间:
2016-07-10 16:34:17
阅读次数:
181
有关于linux下堆利用的文章有很多,之前我也曾总结过,但是并没有深入的追究。这次从源头入手来分析为什么会被利用,怎么被利用。所谓的源头就是堆管理机制,更详细的说就是libc.so中的mallc()与free()函数了。 首先说下堆机制,说白了堆只是一种用户态的内存管理机制而已。设立堆管理机制是为了 ...
分类:
其他好文 时间:
2016-07-06 20:07:14
阅读次数:
588
Linux下,I/O处理的层次可分为4层: 系统调用层,应用程序使用系统调用指定读写哪个文件,文件偏移是多少 文件系统层,写文件时将用户态中的buffer拷贝到内核态下,并由cache缓存该部分数据 块层,管理块设备I/O队列,对I/O请求进行合并、排序 设备层,通过DMA与内存直接交互,将数据写到 ...
分类:
系统相关 时间:
2016-07-02 13:07:58
阅读次数:
214
究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例子 C代码 1. void testfork(){ 2. if(0 = = fork()){ 3. ...
分类:
Web程序 时间:
2016-06-29 20:41:00
阅读次数:
175
strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括..
分类:
系统相关 时间:
2016-06-29 13:31:36
阅读次数:
210
定义:strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用..
分类:
其他好文 时间:
2016-06-29 01:24:26
阅读次数:
290
使用的 glibc : glibc-2.17 使用的 linux kernel :linux-3.2.07 系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode ),从而可以访问 ...
分类:
系统相关 时间:
2016-06-22 10:41:23
阅读次数:
2069
sendfile实质是linux系统中一项优化技术,用以发送文件和网络通信时,减少用户态空间与磁盘倒换数据,而直接在内核级做数据拷贝,这项技术是linux2.4之后就有的,现在已经很普遍的用在了C的网络端服务器上了,而对于java而言,因为java是高级语言中的高级语言,至少在C语言的层面上可以提供... ...
分类:
其他好文 时间:
2016-06-21 09:18:52
阅读次数:
1374