一次关于TMPDIR的调试

一次关于TMPDIR的调试

前些日子,自己玩一个golang项目,为了方便,写了个Makefile,大致内容如下:

PWD := $(shell pwd)
PKG := github.com/ckeyer/bat
TMPDIR := bundles

build:
  go build -o $(TMPDIR)/app main.go

/// 其它忽略。。。

READ MORE

Linux 内核通知链机制

Linux 内核通知链机制

一、概念:


大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子 系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。 READ MORE

Linux 组调度浅析

Linux 组调度浅析

cgroup 与组调度

linux内核实现了control group功能(cgroup,since linux 2.6.24),可以支持将进程分组,然后按组来划分各种资源。比如:group-1拥有30%的CPU和50%的磁盘IO、group-2拥有10%的CPU和20%的磁盘IO、等等。具体参阅cgroup相关文章。
READ MORE

Linux 进程调度浅析

Linux 进程调度浅析

操作系统要实现多进程,进程调度必不可少。进程调度是对TASK_RUNNING状态的进程进行调度(参见《Linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他),那么它跟进程调度没多大关系。

所以,如果你的系统负载非常低,盼星星盼月亮才出现一个可执行状态的进程。那么进程调度也就不会太重要。哪个进程可执行,就让它执行去,没有什么需要多考虑的。
READ MORE

Linux 进程状态浅析

Linux 进程状态浅析

众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。

在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。本文主要介绍进程状态管理,进程调度见《linux进程调度浅析》。 READ MORE