函数运行时在内存中是什么样子?

2021-01-31
阅读 5 分钟
1.3k
我们在之前的文章《高性能高并发服务器是如何实现的》一中提到了一项关键技术——协程,你知道协程的本质是什么吗?有的同学可能会说是用户线程,那么什么是用户态线程,这是怎么实现的?

一文彻底理解IO多路复用

2021-01-08
阅读 5 分钟
7.8k
在讲解IO多路复用之前,我们需要预习一下文件以及文件描述符。什么是文件程序员使用I/O最终都逃不过文件。因为这篇同属于高性能、高并发系列,讲到高性能、高并发就离不开Linux/Unix,因此这里就来讨论一下Linux世界中的文件。实际上对于程序员来说文件是一个很简单的概念,我们只需要将其理解为一个N byte的序列就可以...

什么是程序?

2019-07-06
阅读 3 分钟
19.6k
虽然在这里我们主要关注的是操作系统,但毕竟操作系统的目的就是能更好的运行用户程序,而且该教程主要是站在程序员的角度来讲解操作系统的,作为程序员是绕不开程序这个话题的。因此在深入理解操作系统之前还是有必要来聊一聊程序是怎么一回事。

如何查看进程工作路径

2018-10-10
阅读 1 分钟
7k
比如,你在/home/mac下启动一个进程,那么该进程的工作目录就是/home/mac;如果你在/home/mac/bin下启动同一个程序,那么该进程的工作目录就变为/home/mac/bin。

如何查看进程开启了多少线程

2018-09-29
阅读 2 分钟
6.7k
为什么要知道某个进程开启了多少线程? 好奇,这个很重要 性能调优 概念澄清 这里所说的线程指的是内核级别的线程,不是用户态线程,所谓用户态线程是指不依赖操作系统而是在用户态下实现的执行流调度。 这里的线程个数指的是进程运行时的线程个数,这个数值会随着线程的创建和销毁而动态变化。 本文主要关注Linux平台。...

彻底理解链接器:四,重定位

2018-09-18
阅读 4 分钟
36k
程序的运行过程就是CPU不断的从内存中取出指令然后执行执行的过程,对于函数调用来说比如我们在C/C++语言中调用简单的加法函数add,其对应的汇编指令可能是这样的:

彻底理解链接器:三,库与可执行文件

2018-09-18
阅读 9 分钟
22.9k
在链接器可操作的元素这一节中我们提到,链接器可以操作的最小单元为目标文件,也就是说我们见到的无论是静态库、动态库、可执行文件,都是基于目标文件构建出来的。目标文件就好比乐高积木中最小的零部件。

彻底理解链接器:二,符号决议

2018-09-18
阅读 4 分钟
13k
在这个过程当中,链接器需要做的工作就是确保所有目标文件中的符号引用都有唯一的定义。要想理解这句话我们首先来看看一个典型的c文件里都有些什么。

彻底理解链接器:一,概念

2018-09-16
阅读 2 分钟
11.6k
该系列完整的文章目录: 在介绍本章的主题之前,我们先来看几个问题: 问题一 写C/C++的同学应该经常遇到这样的一个Error: {代码...} 在遇到这样的问题时你知道这背后到底哪里出问题了吗? 你通常都能顺利解决类似问题吗? 问题二 作为世界上最大的同性交友网站GitHub,里面有很多很棒的项目,一般我们或者直接下载其发...