多进程和多线程原理 fork后子进程会复制父进程的task_struct结构,并为子进程的堆栈分配物理页。理论上来说,子进程应该完整的复制父进程的堆栈以及数据空间,但是2者共享正文段。 由于一般fork后面都结着exec,所以现在的fork都在用写时复制的技术,顾明思议,就是数据段,堆栈一开始并不复 ...
分类:
编程语言 时间:
2020-01-12 13:29:36
阅读次数:
84
static(一) 它可以修饰属性和行为但是不能修饰构造; 1、修饰属性/行为又被称之为静态属性/类,加了静态属性的特点:在全类中共享一个值, 不是随着对象的产生而产生,而是类的加载期(main方法运行之前),就已经产生到内存 数据段的静态区了;以后每产生一个对象,其实该属性都是这么一个地方,而不是 ...
分类:
其他好文 时间:
2020-01-09 22:32:26
阅读次数:
78
4.1 线程 每个线程是cpu使用的一个基本单元,它包括线程ID、程序计数器、寄存器组和堆栈。它与同一进程的其他线程共享代码段、数据段和其他操作系统资源。 多线程编程的优点:响应性、资源共享、经济、可伸缩性。 4.2 多核编程 对于单核系统,并发仅意味着线程随着时间交替执行,因为处理核只能同一时间执 ...
分类:
编程语言 时间:
2020-01-05 00:43:31
阅读次数:
118
进程是现代分时操作系统的工作单元。 进程是资源分配的基本单位。 线程是程序执行的最小单位。 3.1 进程概念 3.1.1 进程 进程是执行的程序,这是一种非正式的说法。进程不只是程序代码(也称文本段),进程还包括数据(程序计数器的值和处理器寄存器的内容等)、进程堆栈(包括临时数据,如函数参数、返回地 ...
分类:
系统相关 时间:
2020-01-05 00:07:47
阅读次数:
95
操作系统如何加载程序 1.用户编写完代码后,通过编译器将编译为数据段、代码段、堆栈段、bss段,由链接器链接为装入模块 2.用户通知操作系统要运行的程序 3.操作系统根据路径找到对应的程序,检测程序的头部,找到代码段和数据段的位置 4.文件系统根据这些段的位置找到对应的磁盘块 5.操作系统创建进程( ...
分类:
其他好文 时间:
2020-01-04 10:52:35
阅读次数:
102
send和recv背后数据的收发过程 send和recv是TCP常用的发送数据和接受数据函数,这两个函数具体在linux内核的代码实现上是如何实现的呢? ssize_t recv(int sockfd, void buf, size_t len, int flags) ssize_t send(in ...
分类:
其他好文 时间:
2019-12-26 19:34:06
阅读次数:
75
作者 | Jeskson 来源 | 达达前端小酒馆 1 在JavaScript中的变量分别区分为两种: 一种为基本类型值,一种为引用类型值。 基本类型值指的是简单的数据段 引用类型值为可能由多个值组成的对象 引用类型的值是保存在内存中的对象,JavaScript不允许直接操作对象的内存空间,实际上操 ...
分类:
编程语言 时间:
2019-12-26 09:47:03
阅读次数:
72
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问 序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack: ...
分类:
其他好文 时间:
2019-12-23 18:28:38
阅读次数:
64
1、基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值。 2、常见的基本数据类型: Numbe ...
分类:
编程语言 时间:
2019-12-21 10:12:47
阅读次数:
88
2019/12/19 哈工大 计算机网络 期末总结——引自码迷Code. 零散知识点总结 概述 比特(bit), 字节(byte), 1 byte = 8 bit(空间上,位数上) kbps = 103bps 时延带宽积中的时延是传播时延, 单向的, 不是RTT 传输层是数据段; 网络层是数据报.数 ...
分类:
其他好文 时间:
2019-12-19 11:32:35
阅读次数:
620