bjmayor 发布于 2021-12-09

基本调度策略

调度

调度策略

先做基本假设

  1. 每个工作运行相同的时间。
  2. 所有的工作同时到达。
  3. 一旦开始,每个工作保持运行直到完成。
  4. 所有的工作只是用CPU(无I/O操作)
  5. 每个工作的运行时间是已知的。

定义衡量指标。

  1. 周转时间。 = -
  2. 响应时间。 = -

这2个指标其实是互相矛盾的,不同同时最优。

阅读全文 »

bjmayor 发布于 2021-12-08

cpu如何维护自己控制权的

cpu如何维护自己控制权的

[TOC]

关键概念

用户模式:受限的指令。

内核模式:所有指令

有些操作需要用到特权指令,这个只有在内核模式下才可以运行。

操作系统重获控制权有3种方式:

  1. 进程进行系统调用
  2. 进程出错,如访问了非法内存等。
  3. 时钟中断。

其中时钟中断很重要,是硬件支持。如果没有时钟中断,然后进程又不进行系统调用,也不出错(譬如:啥也不干的无限循环),这样操作系统无法获得控制权。

阅读全文 »

bjmayor 发布于 2021-12-07

docker工作中常用命令参考

[TOC]

工作中用的比较多的命令。

docker

run

systemctl start docker #启动 systemctl daemon-reload #守护进程重启 systemctl restart docker / service docker restart #重启docker服务 docker service docker stop / docker systemctl stop docker #关闭

阅读全文 »

bjmayor 发布于 2021-11-30

mongodb手册

[TOC]

mongodb, 文档数据库,超高性能。无事务。

安装

osx

# 进入 /usr/local cd /usr/local # 下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz # 解压 sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz # 重命名为 mongodb 目录 sudo mv mongodb-osx-x86_64-4.0.9/ mongodb

安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:

export PATH=/usr/local/mongodb/bin:$PATH

创建日志及数据存放的目录:

  • 数据存放路径:

    sudo mkdir -p /usr/local/var/mongodb
    
  • 日志文件路径:

    sudo mkdir -p /usr/local/var/log/mongodb
    

接下来要确保当前用户对以上两个目录有读写的权限:

sudo chown runoob /usr/local/var/mongodb sudo chown runoob /usr/local/var/log/mongodb

阅读全文 »

bjmayor 发布于 2021-11-13

golang cron源码解读

cron

https://github.com/robfig/cron 这个定时任务比较流行,我在项目中也在用。不过在阅读源码前,为了保证任务是串行运行,我还加了处理代码。
看了源码后才知道本身就是支持的。

阅读全文 »

bjmayor 发布于 2021-10-27

goroutine分析

本文档最后一次更新时所用的 Go 版本是 1.15.6,但是大多数情况下,新老版本都适用。

描述

Go 运行时在一个称为 allgs 简单切片追踪所有的 goroutines。这里面包含了活跃的和死亡的 goroutine 。死亡的 goroutine 保留下来,等到生成新的 goroutine 时重用。

Go 有各种 API 来监测 allgs中活跃的 goroutine 和这些 goroutines 当前的堆栈跟踪信息,以及各种其他属性。一些 API 将这些信息公开为统计摘要,而另外一些 API 则给每个单独的 goroutine 信息提供查询接口。

尽管 API 之间有差异,但是活跃的 goroutine 都有如下共同 定义

  • 非死
  • 不是系统 goroutine,也不是 finalizer goroutine。

换句话说,正在运行的 goroutine 和那些等待 i/o、锁、通道、调度的 goroutine 一样,都被认为是活跃的。尽管人们可能会天真的认为后面那几种等待的 goroutine 是不活跃的。

阅读全文 »