1、数组 1)var val 关心变量的地址是否改变(val 内存地址空间不变,值可以改变;var 可以变) 2)用val修饰Array,数组里面的值是可以改变的 3)定长数组(不能添加数据,但是可以改变里面的值)和变长数组(里面可以添加数据) 变长数组 数组的insert和remove 2、数组遍 ...
分类:
编程语言 时间:
2020-03-29 10:24:34
阅读次数:
87
问题1、单进程、线程、协程的区别? 单进程:操作系统分配资源的最小单位,是一个程序的动态执行,有各自的地址空间,不同进程中使用的变量是各自独立,且互相不能访问的,进程中的变量存在各自的地址空间中,互相禁止访问。(由操作系统调度) 线程:是cpu运行的最小单位,进程至少会有一个线程,也可以多个线程,他 ...
分类:
编程语言 时间:
2020-03-28 16:28:49
阅读次数:
87
页目录自映射中,老师一句“当然”让我想了两天,这两天又让我感受到了高中学数论时“xx的证明是平凡的”的恐惧。好不容易想明白,就用人话给自己再讲一遍吧。虽然有很多不必要的重复废话,但比“当然”要好懂多了。 1.基本假设 假设虚拟地址空间为4GB(32位逻辑地址空间),分页时每个页的大小是4KB(即地址 ...
分类:
其他好文 时间:
2020-03-26 12:20:00
阅读次数:
133
一、进程与线程之间的区别 (1)进程是拥有资源的最小单位;线程是拥有调度的最小单位; (2)进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵 (3)线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远 ...
分类:
其他好文 时间:
2020-03-24 15:52:24
阅读次数:
48
IO访问方式 磁盘IO 具体步骤: 当应用程序调用read接口时,操作系统检查内核缓冲区中是否存在需要的数据,如果存在,就直接从内核缓存中直接返回,否则从磁盘中读取,然后缓存至操作系统的缓存中。 当应用程序调用write接口时,将数据直接从用户地址空间复制到内核地址空间的缓存中,这时对用户程序来说, ...
分类:
其他好文 时间:
2020-03-22 17:45:07
阅读次数:
67
一、不同点: 1、fork()用于创建一个新进程。由fork()创建的子进程是父进程的副本。即子进程获取父进程数据空间,堆和 栈的副本。父子进程之间不共享这些存储空间的部分。而vfork()创建的进程并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec (或exit)于是也就不会存 ...
分类:
其他好文 时间:
2020-03-22 01:17:39
阅读次数:
57
说明 channel是go当中的一个核心类型,可以看做是管道。并发核心单元可以通过channel进行数据的发送和接收,从而实现通信。 在go中,channel是一种数据类型,主要被用来解决协程的同步问题以及协程之间数据共享(数据传递)的问题。 go当中的goroutine运行在相同的地址空间,因此访 ...
分类:
其他好文 时间:
2020-03-21 09:37:10
阅读次数:
61
2.1进程 定义:每个执行程序的抽象就是进程。每个进程都有自己的virtual CPU,CPU在进程中快速切换称为 多道程序设计 。、 2.2线程 定义:线程是进程的子集,同一个进程里的所有线程拥有和进程相同的地址空间,可以实现并行操作。 用户级线程: 优点:1.可以在不支持线程的OS上实现,可以用 ...
分类:
编程语言 时间:
2020-03-19 13:11:31
阅读次数:
53
1、什么是操作系统1.1 定义 用户角度上(对上):为应用程序提供服务,是一个控制程序,能够管理应用程序,如:限制不同应用占用不同资源;为应用程序提供不同服务,如:IO服务、声卡网卡服务;内部程序角度(对下):资源管理,管理外设、分配资源1.2 功能操作系统将CPU进程,磁盘文件,内存地址空间,通过... ...
分类:
其他好文 时间:
2020-03-18 23:32:21
阅读次数:
109
一、进程描述符 进程控制块PCB:是OS控制进程运行用的数据结构,是一个task_struct结构体。 PCB包括:进程标识信息(进程标识符PID等)、执行现场信息(CPU现场,进程切换时需要保存现场信息)、进程映像信息(进程地址空间,即进程在运行时代码、数据、栈放在什么位置,方便OS对地址空间进行 ...
分类:
系统相关 时间:
2020-03-18 21:51:01
阅读次数:
78