FCFS(先来先服务),优先级,时间片轮转,多级反馈-调度算法。 先来先服务调度算法:是一种最简单的调度算法,每次调度是从进程队列中选择一个最先进入该队列的进程,为之分配资源投入运行。该进程一直运行完成或发生某事件而阻塞后才继续处理后面的进程。 优先级调度算法:有短进程优先级、高优先权优先级、高响应 ...
分类:
系统相关 时间:
2019-09-02 23:46:40
阅读次数:
152
写一点OS的基础知识,面试中持续更新... 基基础知识 1.计算机硬件:输入/输出设备,存储器,运算器,控制器。 2.三种基本OS类型: 批处理OS:单道批处理(CPU利用率低),多道批处理(缺乏交互性) 分时OS:时间片轮转分配; 实时OS:及时响应,高可靠性 3.最基本特征:并发和共享 4. 并 ...
分类:
其他好文 时间:
2019-08-25 18:28:37
阅读次数:
122
[toc] 注意事项 goroutine只是官方的超级线程池 高并发性:占用内存小,创建销毁很快 goroutine的简单易用,也在语言层面上给予开发者巨大的便利 并发不是并行,并行是直接利用多核实现多线程的运行,并发是由切换时间片来实现“同时”运行 goroutine奉行通过通信(channel) ...
分类:
其他好文 时间:
2019-08-23 19:23:29
阅读次数:
78
1. 如果将关系密切(比如两个任务之间需要经常收发数据)的若干功能分别用不同的任务来实现,则需要进行大量的任务之间数据通信和同步通信,这系统来说是一个很大的负担。因此应该将关系密切的若干功能组合成一个任务,相关数据为各个功能共享,因此可以节省大量的资源。 2. 任务之间的切换需要占用CPU的资源,所 ...
分类:
其他好文 时间:
2019-08-20 18:49:51
阅读次数:
142
什么是并发 在过去单CPU时代,单任务在一个时间点只能执行单一程序。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行。 ...
分类:
编程语言 时间:
2019-08-11 14:47:43
阅读次数:
100
SpinWait 提供了两个方法和两个只读属性。 方法: SpinWait.Reset() : 重置自旋计数器,将计数器置 0。效果就好像没调用过SpinOnce一样。SpinWait.Once() : 执行一次自旋。当SpinWait自旋达到一定次数后,如果有必要当前线程会让出底层的时间片并触发上 ...
分类:
其他好文 时间:
2019-08-08 13:22:31
阅读次数:
91
一: 进程、线程 和 协程 之间概念的区别: 对于 进程、线程,都是有内核进行调度,有 CPU 时间片的概念,进行 抢占式调度(有多种调度算法) (补充: 抢占式调度与非抢占(轮询任务调度)区别在于抢占式调度可以因为优先级高的任务抢占cpu,而轮询的不能) 对于 协程(用户级线程),这是对内核透明的 ...
分类:
其他好文 时间:
2019-07-15 22:33:31
阅读次数:
77
面试官:请问启动线程是start()还是run()方法,能谈谈吗?应聘者:start()方法当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。但是这并不意味着线程就会立即运行。只有当cpu分配时间片时,这个线程获得时间片时,才开始执行run()方法。start()是方法,它调用run()方法.而run()方法是你必须重写
分类:
编程语言 时间:
2019-07-14 21:27:56
阅读次数:
134
面试官:请问启动线程是start()还是run()方法,能谈谈吗? 应聘者:start()方法 当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。但是这并不意味着线程就会立即运行。只有当cpu分配时间片时,这个线程获得时间 ...
分类:
编程语言 时间:
2019-07-14 19:28:20
阅读次数:
112
golang协程同步的几种方法 [toc] 本文简要介绍下go中协程的几种同步方法。 协程概念简要理解 协程类似线程,是一种更为轻量级的调度单位,但协程还是不同于线程的,线程是系统级实现的,常见的调度方法是时间片轮转法,如每隔10ms切换一个线程执行。 协程则是应用软件级实现,它和线程的原理差不多, ...
分类:
其他好文 时间:
2019-06-29 22:04:50
阅读次数:
127