面试准备系列之操作系统

2022-08-17
阅读 2 分钟
963
linux内存管理部分物理内存、虚拟内存、分段分页、mmu、页表、tlb的基本概念进程的内存模型:栈、文件映射区、栈、data段、bss段、text段物理内存管理:buddy和slab,参考这篇文章虚拟内存管理:brk和mmap,参考这篇文章,申请虚拟内存时还没有分配物理内存,缺页异常时申请物理内存并进行映射。标准库:malloc,通过brk...

linux监控文件系统:inotify

2020-12-23
阅读 2 分钟
4.2k
官方介绍:[链接]inotify eventsIN_ACCESS +文件被访问 read, execveIN_ATTRIB *元数据该表,例如权限,timestamp,链接数,user/group ID等等。IN_CLOSE_WRITE +可写文件被关闭IN_CLOSE_NOWRITE *非可写的文件或者目录被关闭IN_CREATE +文件或者目录在监控目录中被创建(也就是说这个事件只可能在监控目录时才可能产生...

linux日常学习:守护进程,会话与任务

2020-03-21
阅读 2 分钟
2.6k
关于session和shell:常见的session一般是shell session,在终端中只有一个session,当我们打开一个新的终端时,总会创建一个新session,session由一个或多个进程组组成,一般情况下shell进程当作session的领头进程。领头进程的PID当作seeesion的SID。session中的每个进程组被称为一个job。

malloc背后的那些事

2020-03-18
阅读 2 分钟
3.4k
动态内存分配器维护着一个进程的虚拟内存区域,称为堆(heap),紧接在未初始化的数据区域后开始,向上生长。对于每个进程,内核维护着一个变量brk,指向堆的顶部。分配器将堆视为一组大小不同的block的集合来维护,每个block就是一个连续的虚拟内存片,要么是已分配状态,要么是空闲状态。c/c++中采用的是显式分配器,...

网络套接字vs unix域套接字

2020-03-14
阅读 1 分钟
3.7k
首先来看环回ip地址和其他ip作为目的ip地址的区别:以环回地址作为目的地址和其他网络地址作为目的地址的区别:环回地址照样会完成传输层和网络层的所有过程,只是在数据离开网络层时将其返回给自己。环回地址不会触发ARP协议以及不会发送到以太网。

套接字选项和非阻塞套接字

2020-02-27
阅读 1 分钟
2.2k
int fcntl(int fd, int cmd,...);位于头文件:<fcntl.h>返回值:若成功则返回值取决于cmd,失败则返回-1.

io复用与epoll模型详解

2020-02-25
阅读 7 分钟
3.5k
1.阻塞式io该io模型使得调用方阻塞等待数据到达,直到数据从内核拷贝到用户空间后才返回。2.非阻塞式io该io模型不会阻塞,当内核没有可读的数据时,调用该函数会返回一个错误。当内核有数据可读时,会等待数据从内核拷贝到用户空间然后返回。3.io复用该io模型下进程阻塞在select/poll上,select/pool本身持有多个io描述...

unix高级编程笔记

2020-02-23
阅读 8 分钟
2.6k
当内核启动一个c程序时,在main函数之前会先调用启动例程,由启动例程做一些处理工作然后才调用main函数,该启动例程至少要设置命令行参数和环境变量。unix进程退出的5种方式:

unix环境网络编程笔记

2020-02-22
阅读 12 分钟
2.3k
struct sockaddr_in位于头文件:<netinet/in.h>网际套接字地址结构,包括地址族,ip地址和端口号,还有补充字节。