操作系统 02 进程与线程
2.1
刷完题了,总结一下常考的地方。
进程映像
进程映像=PCB+程序+数据
并发特性
并发的进程结果不可再现,因为不同的执行速度得到的结果不同(比如多个进程对共享变量的操作)
进程和线程
每个进程包含独立的地址空间。
线程没有自己独立的地址空间,它共享所属进程的空间。同一个进程的线程之间的通信可以直接通过它们共享的存储空间。
进程和程序
一个进程可以顺序执行一个或多个程序。
但是一个进程不能同时执行多个程序。
一个程序的多次运行可以形成多个不同的进程。
一个程序的一次执行可以产生多个进程,一个程序可以通过系统调用来创建子进程,从而实现并发处理或分布式计算。
用户级线程和系统级线程
用户级线程:用户级线程是由用户程序或函数库实现的,不依赖于操作系统的支持。用户级线程对操作系统是透明的,CPU调度的对象仍然是进程。用户级线程是在用户空间中实现的,用户级线程只能在用户态运行。
用户级线程只有创建和撤销时需要操作系统? × 用户级线程是由用户程序和函数库实现的,用户级线程创建和撤销不需要操作系统。
内核级线程:一对一的内核级线程,同一进程的线程切换需要转到核心态,系统开销较大。内核级线程可以在内核态执行系统调用子程序,直接利用系统调用为它服务,内核级线程可以运行在内核态。
创建进程的操作
用户登录、高级调度及作业调度、用户提出请求、用户打开一个浏览器程序
但是设备分配不创建进程,设备分配设置相应的数据结构。
进程通信
Socket 用于不同机器之间的进程之间的通信。
最快的通信方式是共享内存。
通道:
通道是单向的。
通道的读操作和写操作可能被阻塞。通道可以多个读,或多个写,要注意互斥。