 
			operating system
导航
ch1 introduction
1.10 computing environments
traditional
- mainframe systems- 大型机(主机)的操作系统有:批处理系统、分时系统
 
- Time-sharing Systems- 所谓分时是指多个用户分时共享使用同一台计算机,也就是说把计算机的系统资源(尤其是CPU时间)进行时间上分割,即将整个工作时间分成一个个的时间片,每个时间片分给一个用户使用,这样将CPU工作时间分别提供给多个用户使用,每个用户依次地轮流且使用一个时间片。
- 响应时间是分时系统的重要指标,它是用户发出终端命令到系统作出响应的时间间隔
 
- Desktop Systems
Chapter2 Operating-System Structures
内核模块
Linux系统调用
why
- 系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数)。
- 用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode),从而可以访问相应的资源。
- 运行模式- 内核模式
- 用户模式
 
- 地址空间- 用户空间
- 内核空间(在每个进程的虚拟地址空间中都是固定的)
 
- 上下文
系统调用与内核函数
- 内核函数在形式上与普通函数一样,但它是在内核实现的,需要满足一些内核编程的要求
- 系统调用是用户进程进入内核的接口层,它本身并非内核函数,但它是由内核函数实现的
- 当用户态的进程调用一个系统调用时,CPU切换到内核态并开始执行一个内核函数
系统调用处理程序
- 系统调用本质上是用户通过执行一条特殊的指令主动请求内核服务。
- 系统调用本质上是一种特殊的中断,处理程序(system_call()):它是在执行 int $0x80 或 syscall 指令时,内核最先执行到的代码。操作如下:- 在内核栈保存大多数寄存器的内容
- 根据eax中所包含的系统调用号调用对应的特定服务例程
- 调用名为系统调用服务例程(systemcallserviceroutine)的相应的C函数来处理系统调用
- 通过ret_from_sys_call()函数从系统调用返回
 
系统调用中参数传递
- 每个系统调用至少有一个参数,即通过eax寄存器传递来的系统调用号
- 用寄存器传递参数必须满足两个条件- 每个参数的长度不能超过寄存器的长度
- 参数的个数不能超过6个(包括eax中传递的系统调用号),否则,用一个单独的寄存器指向进程地址空间中这些参数值所在的一个内存区即可
 
- 在少数情况下,系统调用不使用任何参数
- 服务例程的返回值必须写到eax寄存器中
Chapter3 Process
3.1 进程概念
- A process is a program in execution(an active entity, i.e. it is a running program),也就是说当一个可执行文件被加载到内存开始执行时就变成了一个进程,它是动态的。
- 进程的内容:
 A process includes:- The program code, also called text section(代码段)
- Program counter (PC)
- Registers
- Data section (global data)(数据段)
- Stack (temporary data)
- Heap (dynamically allocated memory)
 
进程状态
As a process executes, it changes state:
- New(新): The process is being created.
- Running(运行、执行): Instructions are being executed.需要注意的是一次只有一个进程可以在处理器上运行
- Ready(就绪): The process is waiting to be assigned to a processor (CPU).当进程处于就绪状态时,说明此时处理器不是空闲的,一定有进程在处理器上运行。
- Waiting(等待、blocked阻塞): The process is waiting for some event to occur.所有的进程都可能处于等待状态。
- Terminated(终止): The process has finished execution.
进程控制块
- 每个进程在操作系统内用进程控制块来表示,它包含与特定进程相关的许多信息:- Process state
- Program counter
- CPU registers
- CPU scheduling information
- Memory-management information
- Accounting information
- File management
- I/O status information
 
