最近忙于找工作,总结下自己的面试经历,勉励自己不断学习不断进步吧。人,不管从事什么样的职业和做何种工作,都要保持一种不断探索和回头总结的习惯,好记性不如烂笔头。 面经1一面题直接上题,如图,拿到这张卷子,第一反应是粗略扫了下三个题,第一题一看就会;第二题让我联想到了动态规划,最后也是用动态规划解出来 ...
基于线程池、消息队列和epoll模型实现并发服务器架构
引言并发是什么?企业在进行产品开发过程中为什么需要考虑这个问题?想象一下天猫的双11和京东的618活动,一秒的点击量就有几十万甚至上百万,这么多请求一下子涌入到服务器,服务器需要对这么多的请求逐个进行消化掉,假如服务器一秒的处理能力就几万,那么剩下的不能及时得到处理的这些请求作何处理?总不能让用户界 ...
基于LAMP实现后台活动发布和前端扫码签到系统
目的无论是公司、学校和社会团体,都会举办各式各样的活动,比如运动会、部门会议、项目会议、野炊、团建等。作为团队管理者来讲,当然希望能够把这类活动转移到线上形成完整的系统,类似于电子流的形式。本文以学院组织的所有活动为例,实现一个这样的系统。 群体学院由很多班级组成,每个班级由班干部(如班长、团支书等 ...
epoll源码分析(基于linux-5.1.4)
APIepoll提供给用户进程的接口有如下四个,本文基于linux-5.1.4源码详细分析每个API具体做了啥工作,通过UML时序图理清内核内部的函数调用关系。 int epoll_create1(int size); 创建一个epfd句柄,size为0时等价于int epoll_create( ...
Hexo+Github博客最简教程-Dockerfile自动搭建
闲谈拿出你的气质,打开你的电脑,借你半小时搭建好属于你的hexo博客,小生用dockerfile自动帮你搭建好;你只需要在你的mac或linux或windows上提前把docker安装好,如何安装不是我的重点,请参考Docker安装;作为程序员,博客就像你的影子,我都已经忘了内心曾经多少次告诫自己, ...
XV6源代码阅读-虚拟内存管理
Exercise1 源代码阅读 内存管理部分: kalloc.c vm.c 以及相关其他文件代码 kalloc.c:char kalloc(void)负责在需要的时候为用户空间、内核栈、页表页以及缓冲区分配物理内存,将物理地址转为虚拟地址返回,物理页大小为4k。void kfree(char ...
XV6源代码阅读-中断与系统调用
Exercise1 源代码阅读 启动部分: bootasm.S bootmain.c 和xv6初始化模块:main.c bootasm.S 由16位和32位汇编混合编写成的XV6引导加载器。bootasm.S内的汇编代码会调用bootmain.c中的void bootmain(void);mai ...
XV6源代码阅读-进程线程
Exercise1 源代码阅读 基本头文件:types.h param.h memlayout.h defs.h x86.h asm.h mmu.h elf.h types.h:仅仅是定义uint, ushort, uchar pde_t别名; typedef unsigned int u ...
XV6源代码阅读-同步机制
Exercise1 源代码阅读锁部分:spinlock.h/spinlock.c以及相关其他文件代码 // Mutual exclusion lock.struct spinlock { uint locked; // 0未被占用, 1已被占用 // For debugging: ...
XV6源代码阅读-文件系统
Exercise1 源代码阅读文件系统部分 buf.h fcntl.h stat.h fs.h file.h ide.c bio.c log.c fs.c file.c sysfile.c exec.c buf.h:对xv6中磁盘块数据结构进行定义,块大小为512字节。 // xv6中磁盘块数据 ...