Processes
:material-circle-edit-outline: 约 606 个字 :material-clock-time-two-outline: 预计阅读时间 2 分钟
进程定义
进程是一个抽象实体,是一个独立的可以调度的活动,需要分配和释放各种资源
是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,是可并行执行的计算部分
- A process is a program in execution
- Basic unit of work on a computer, a job, a task
- A container of instructions with some resources
- jobs 作业 = user programs 用户程序 = tasks 任务 = process 进程
进程不仅仅是一串代码,还包括各种被分配的资源
Process State 进程状态
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 Scheduling
- Long-term scheduler 长程调度(或作业调度 or job scheduler)
- 筛选出能推入就绪队列的进程,同时控制并发程度
- 这种调度每时每分都在执行,会很慢,现代 OS 基本没有这种调度了
- 从外存选进程进入内存
- Short-term scheduler 短程调度(或 CPU 调度 or CPU scheduler)
- 筛选出下一个被执行的进程,给其分配 CPU
- 每时每分都在执行,很快
- Medium-Term Scheduler 中程调度
- 缓解内存紧张,临时取消 CPU 分配,见下图
Threads
线程(Thread)概念
进程是资源分配的基本单位,线程是处理器调度的基本单位,线程又叫轻型进程
进程是为线程提供资源的,线程必须在进程当中
特点
- 拥有少量的系统资源(资源是分配给进程)
- 一个进程中的多个线程可并发执行
- 进程可创建线程执行同一程序的不同部分
- 系统开销小、切换快,进程的多个线程都在进程的地址空间活动
threads shares same of process:code section, data section, operating-system resources
Multithreading Models
User Threads(用户级线程)
- 内核不了解用户线程的存在
- 用户线程的维护由应用进程完成
- 用户线程切换不需要内核特权
- 一个线程发起系统调用而阻塞,则整个进程在等待
Multithreading Models
- Many-to-One Model
- One-to-One
- Many-to-Many Model
- Two-level Model
- Similar to M:M, except that it allows a user thread to be bound to kernel thread