深入理解计算机系统
苞米地里捉小鸡
程序蒟蒻
展开
-
Tiny Web服务器代码分析
Tiny Web服务器代码分析《深入理解计算机系统》中开发了一个小但是功能齐全的称为Tiny的web服务器,这里是Tiny服务器的源码解析。1.Tiny的main程序Tiny是一个迭代服务器,通过命令行中传递来的端口值,调用Open_listenfd()函数打开一个监听套接字,然后Tiny执行无限循环:服务器阻塞在accept,等待监听描述符listenfd上的连接请求,当服务器从accep...原创 2020-03-12 15:57:45 · 366 阅读 · 0 评论 -
C++ main函数中参数argc和argv含义及用法
argc 是 argument count的缩写,表示传入main函数的参数个数;argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个;简单用法示例,新建工程键代码:#include <iostream&g...原创 2020-03-11 16:57:23 · 965 阅读 · 0 评论 -
Linux下socket编程的简单实例
1 服务器端的socket编程服务器端主要的功能,就是创建socket监听,等待客户端的连接。基础的步骤很简单,如下:(1) 创建socket;(2) 绑定地址和端口;(3) 启动监听;(4) 接受客户端请求;(5) 读/写数据;1.1 创建socket:函数原型:mysocket = socket(int socket_family, int socket_type, int...转载 2020-03-11 10:59:42 · 1024 阅读 · 0 评论 -
健壮的网络编程IO函数-RIO包
RIO包简介Rio包即为Robust io函数包。包中函数是对Linux基本I/O函数的封装,使其更加健壮、高效,更适用于网络编程。分析Rio包由rio_t结构体和系列函数组成。首先是两个不涉及缓冲区的函数rio_readn()和rio_writen();rio_readn 与 rio_writen为了解释这两个函数存在的必要,我们先来看看基本IO函数write、read...转载 2020-03-10 22:43:46 · 929 阅读 · 0 评论 -
execve函数
虚拟存储器和存储器映射在程序加载到存储器的过程中扮演很关键的角色。execve函数在实际中如何加载和执行程序的呢?就是用到上边两个关键的概念。exec簇函数,最后,都是调用了execve这个函数!这个函数的作用,就是去执行一个文件!典型的用法,就是在shell中,执行一个文件,比如说,一个编译好的文件,叫做helloworld,那么,在shell下执行./helloworld的时候,s...转载 2020-03-10 10:11:03 · 2095 阅读 · 0 评论 -
深入理解计算机系统第8章复习
1.异常的分类2.中断是异步,其他异常是同步3。常用的系统调用函数4.内核是操作系统常驻内存的部分5.上下文6.获取进程ID号,pind_t在types.h中被定义为int类型别名(包含于unistd.h)pid_t getpid();//返回调用进程的PIDpid_t sgtppid();//返回调用进程的父进程7. fork如果输入pri...原创 2020-03-10 09:41:34 · 308 阅读 · 0 评论 -
深入理解计算机系统
第 1 章、计算机系统漫游计算机系统是由硬件和系统软件组成的,它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的位,它们依据不同的上下文又有不同的解释方式。程序被其他程序翻译成不同的形式,开始时是 ASCII 文本,然后被编译器和链接器翻译成二进制可执行文件。处理器读取并解释存放在主存里的二进制指令。因为计算机花费了大最的时间在存储器、 I/O 设备和 CPU 寄存器之间拷贝数据,所...转载 2020-03-06 10:43:03 · 1664 阅读 · 0 评论 -
操作系统学习总结(超赞!!!)
操作系统基本特征并发并发性是指宏观上在一段时间内能同时运行多个程序,而并行性则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线或者多处理器。操作系统通过引入进程和线程,使得程序能够并发运行。共享共享是指系统中的资源可以供多个并发的进程共同使用。有两种共享方式:互斥共享和同时共享。互斥共享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,否则会出现错误,需...转载 2020-03-06 09:07:54 · 101 阅读 · 0 评论