
操作系统
Raven_csdn
分享,记录
展开
-
操作系统--进程管理
为了使参与并发执行的程序(含数据)能独立的运行,必须位置配置一个专门的数据结构,称为进程控制块(PCB),系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。相应地,由程序段、相关数据段和PCB三部分构成了进程映像(进程实体)。所谓创建进程,实质上是创建进程映像中的PCB;而撤销进程,实质上是撤销进程的PCB,值得注意的是,进程映像是静态的,进程则是动态的。PCB是进程存在的唯一标志...原创 2019-03-11 20:28:33 · 285 阅读 · 0 评论 -
操作系统---内存管理
内存管理内存管理的功能有:1、内存空间的分配与回收:由操作系统完成存储器空间的分配和管理,是程序员拜托存储分配的麻烦2、地址转换:在多道程序环境下,程序中的逻辑地址与内存中的物理地址可能不一致,因此存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址。3、内存空间的扩充:利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。4、存储保护:保证各道作业在各自的存储空间内运行,互不干扰。...原创 2019-04-04 23:59:01 · 398 阅读 · 0 评论 -
Linux进程之间的通信--内存映射区mmap
mmap创建内存映射区域作用:将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件函数原型: #include <sys/mman.h>void *mmap( void *addr,//映射区首地址,传NULL size_t length, //映射区的大小 int prot, //映射区权限 int flags, //标志位参数...原创 2019-04-06 00:09:39 · 501 阅读 · 0 评论 -
Socket编程---API
Socket可以看成是用户进程与内核网络协议栈的编程接口Socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机间的通信。IPv4套接口地址结构IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中<netinet/in.h>struct sockaddr_in{ uint8_t sin_len;//整个sock...原创 2019-04-22 20:45:19 · 453 阅读 · 0 评论 -
Socket编程---c/s模式演示demo1
首先,看服务端代码:#include<unistd.h>#include<sys/stat.h>#include<sys/wait.h>#include<sys/types.h>#include<fcntl.h>#include<stdlib.h>#include<stdio.h>#include&...原创 2019-04-22 21:52:21 · 469 阅读 · 0 评论 -
Socket编程---c/s模型demo2
demo2的客户端和demo1的客户端相同只需要写重写服务端的程序.服务端代码如下:#include<unistd.h>#include<sys/stat.h>#include<sys/wait.h>#include<sys/types.h>#include<fcntl.h>#include<stdlib.h>...原创 2019-04-22 22:15:29 · 229 阅读 · 0 评论 -
Socket编程---长短连接
长连接和短连接是由客户端决定的短连接是客户端每做一个通信就连接一次如果是频繁的业务模型,长连接比较好写一个短连接的的例子:#include<unistd.h>#include<sys/stat.h>#include<sys/wait.h>#include<sys/types.h>#include<fcntl.h>#in...原创 2019-04-22 23:06:13 · 611 阅读 · 0 评论 -
网络I/O模型
1、阻塞I/O1)当上层应用app调用recv系统调用时,如果对等方没有发送数据(缓冲区没有数据),上层应用app将阻塞(默认行为,被linux内核阻塞)。2)当对等方发送了数据,linux内核recv端缓冲区,有数据后,内核会吧数据copy给用户空间。然后上层应用解除阻塞,执行下一步操作。2、非阻塞I/O1)、上层应用程序将套接字设置成非阻塞模式2)、上层应用程序轮询调用recv函数...原创 2019-04-24 23:58:14 · 229 阅读 · 0 评论