go语言调度器源代码情景分析之一:开篇语

专题简介

本专题以精心设计的情景为线索,结合go语言最新1.12版源代码深入细致的分析了goroutine调度器实现原理。

 

适宜读者

  • go语言开发人员

  • 对线程调度器工作原理感兴趣的工程师

  • 对计算机底层运行原理感兴趣的工程师

 

专题目标

笔者希望即使是从未接触过计算机底层原理的读者,通过对本专栏的认真学习,都可以完全掌握go语言调度器的实现原理及细节,从而可以充分利用go调度器的特性写出更加优秀的并发程序和解决一些与调度相关的疑难杂症;另外,读者还可以学到大量与程序运行相关的基础知识,比如汇编代码,CPU如何执行指令以及并发无锁编程等等非常重要的编程内功心法,有了这些基础理论,在今后的学习和工作中,读者就完全有能力对其它一些自己感兴趣的底层实现原理做深入的分析。

 

如何学习本专栏

编程是一门实践性很强的技术,所以建议读者在阅读本专栏时多注重实践练习,特别是在学习第一部分的汇编指令及函数调用栈等知识的时候,读者可以自己写一些小程序然后用调试工具单步执行来跟踪寄存器以及栈的变化,从而更好的理解这些内容。

 

专栏模块

本专栏主要分为两大部分:

  • 第一部分包括第一章,主要介绍理解调度器工作原理所必须的预备知识,比如汇编指令,函数调用过程,操作系统线程调度原理以及线程本地存储等重要理论知识。这部分内容主要是为从未接触过底层知识的读者准备的,如果读者对这部分已经很熟了,则完全可以跳过这部分的阅读。

  • 第二部分包括第2到第6章,主要分析goroutine调度器的实现,包括调度器的初始化,调度策略以及主动被动和抢占调度等,在分析过程中我们不仅会介绍调度器在干什么,更重要的是我们还会详细说明为什么要这么做,让读者知其然也知其所以然。

 

专栏章节(初定)

1. 开篇语

第一章 预备知识

2. CPU寄存器

3. 内存

4. 函数调用栈

5. 汇编指令

6. go语言汇编

7. 函数调用过程

8. 系统调用

9. 操作系统线程及调度

10. 线程本地存储

 

第二章 初始化和调度循环

11. 调度器概述

12. 程序启动和调度器初始化

13. 创建main goroutine

14. 启动main goroutine 

 

第三章 调度策略

15. goroutine的退出与调度循环

16. 再探schedule函数与寻找可运行的goroutine

17. 盗取goroutine与工作线程睡眠

 

第四章 被动调度

18. goroutine进入运行队列

19. goroutine进入睡眠

20. 唤醒睡眠中的goroutine与工作线程

21. 创建工作线程

 

第五章 主动调度

22. 主动调度

 

第六章 抢占调度

23. 抢占运行时间过长的goroutine

24. goroutine进入系统调用以及从系统调用返回

25. 抢占进入系统调用的goroutine

 

 

作者介绍

爱写程序的阿波张,15年软件开发经验,对计算机底层运行原理很感兴趣,做过应用层软件,也玩过操作系统内核。

 

最后,如果您有任何建议或疑问,可以这里留言,也可以关注作者公众号:

公众号 go语言核心编程技术

还可以扫描下方微信二维码添加好友,我们一起进步!

微信 rob_zh

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该软件是游戏软件,主要用于捉弄人 1、远程文件操作:包括创建、上传、下载、复制、删除文件或目录、打开文件(提供了四中不同的打开方式??正常方式、最大化、最小化和隐藏方式)等多项文件操作功能; 2、远程关机、重启、睡眠,拨号控制,光驱控制,注册表锁定,鼠标锁定,键盘锁定,对桌面图标、任务栏等锁定和隐藏等系统控制; 3、更改系统墙纸、分辨率、颜色、主机名、创建网络共享等系统配置功能; 4、获取计算机名、注册公司、当前用户、系统路径、操作系统版本、当前显示分辨率、物理及逻辑磁盘信息等多项系统数据; 5、对按键监视、剪切板监视、文件操作监视、任务监视和终止以及直接的屏幕监视和控制; 6、口令获取:上网密码,用户登陆密码,以星星出现过的密码,以及“Password”,“密码”,“登陆”,“口令”,“连接”,“帐号”,“用户”,“login”,“account”,“connect”等敏感字符进行获取,内存和CPU利用率也并不高。 7、短信息发送:以四种常用图标向被控端发送简短信息; 8、点对点聊天:与被控端进行点对点聊天交谈; 9、骷髅、地震、乱屏等耍人操作; 10、命令提示符操作:对DIR、NET VIEW等什么的Command命令操作; 11、注册表操作:主键的浏览、增删、重命名和对键值的读写等所有注册表操作功能; 12、EXE处理:帮你的木马瞒天过海,帮你的EXE文件进行捆绑,加密,更换图标; 13、服务断配置:可更改端口、密码IP通知采用Email通知和客户端内置服务侍待两种通知方式,Email通知将你的动态IP和密码星星等发走,采用静态IP通知5分钟刷新一次; 14、增加系统安全性,用户需要密码才能访问,可自动卸载,重新加载 15、新版单一采用TCP/IP协议传输,没用到UDP协议,消除了服务端在Win2k/NT下的不稳定情况 一些问题: 1、自动搜索:计算机自动扫描指定端口下的IP,该服务程序指定端口为8011,又分高级搜索和低级搜索 2、低级搜索:在指定C类子网下扫描IP,用时短,显示中木马的计算机 3、高级搜索:穷举所有IP,用时长,显示中木马的计算机 4、因为要等待对方响应,根据你搜索的网大小定致延时 5、退出会终止搜索并把列表中的IP地址列在IP列表中,未保存 6、屏幕跟踪时,按键盘、鼠标相当对方按键盘鼠标,完全模拟,采用了JPEG图象传输适合Internet传输 7、IP列表中,读入记录可把保存的IP列举出来 8、IP列表中,保存记录可把列表中的IP保存进文件 9、IP列表中,清空记录删除文件记录 10、IP列表中,删除记录可在文件中删除该条记录 11、IP列表中,双击列表可自动把IP列入连接IP上 12、如用新建文件夹、复制、粘贴等,可能有影射错误,可用文件自动刷新,注册表同理,建议手动刷新 13、更换计算机名字要下次重启才有效 14、文件管理中注意底下的当前目录可能和你左边的目录树不同,这没有错,因为数据未接收完时你按键 太多了 15、对键值的新建或删除不会自动刷新,请重新展开根键 16、 更换墙纸 命令无效,这个问题的可能性太多了,较常见的原因是被监控端的桌面设置为 按WEB页查看 17、二进制修改支持到0x200的偏移量修改 18、IP通知,分Email通知(动态IP适用)和内置IP服务侍待(局域网适用),不需要Email通知请清空SMTP和Email 19、更改了配置采用重载服务断后立即有效 20、由于采用防DES复杂加密技术,EXE加密如果采用随机码加密则运行解密时会慢点 21、加密后的程序只不过是来帮木马、病毒之类的瞒天过海,运行后当然会原形毕露,也只能做到这一步 22、所以要先配置服务端后再进行EXE捆绑才有效 23、配置服务断程序端口请用1024-65535之间的端口,以免冲突 24、由于2.1之后版本的内核和方法都完全改了,支持对2.1后的版本在线升级服务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值