操作系统复习:DAY02--进程、线程

本文详细探讨了系统调用的作用、操作系统结构(大内核与微内核)、开机过程、进程的构成与状态转换、原语和进程间通信方法,包括共享存储、消息传递和管道通信。还涉及了线程及其状态管理。
摘要由CSDN通过智能技术生成

系统调用:

系统调用其实是操作系统给程序员留下来的接口,当应用程序需要进行对系统资源进行操作的时候便需要调用该接口来实现相对应的功能。一般情况下,很多我们平时书写的库函数就会通过系统调用来实现具体的功能。

操作系统的体系结构:

拥有两种结构:

  • 大内核:将进程、存储器、设备管理等功能也放在了内核当中(Linux、Unix)

  • 微内核:将进程、存储器、设备管理等功能放在了用户态中执行

操作系统的启动过程(开机的过程):

  1. 首先CPU会从主内存的ROM中执行ROM引导程序,将磁盘中的主引导记录加载进行内存当中

  2. 然后CPU执行主引导记录中的磁盘引导程序,并扫描磁盘分区,最终找到主分区(C盘)

  3. 将C盘中的引导记录加载进行主内存当中

  4. CPU开始执行引导记录,找到C盘中操作系统的初始化程序,并加载进行主内存并执行。

进程:

进程的基本信息:

主要是由三部分组成:

PCB:用于储存进程执行的相关信息。
  1. 进程状态(Process State):指示进程当前的状态,如运行、就绪、阻塞等。

  2. 程序计数器(Program Counter,PC):记录进程当前执行的指令位置,即下一条要执行的指令地址。

  3. 堆栈指针(Stack Pointer,SP):指向进程当前的堆栈顶部,用于保存函数调用和局部变量等信息。

  4. 内存管理信息:包括进程使用的内存空间分配情况,如基址、界限寄存器的值,或页表信息等。

  5. 进程标识符(Process ID,PID):唯一标识系统中的每个进程。

  6. 优先级(Priority):用于调度进程的优先级信息,决定了进程获取 CPU 时间的顺序。

  7. 父进程和子进程关系:指向父进程和子进程的指针或标识符。

  8. 打开文件表(File Descriptor Table):包含进程打开的文件信息,如文件描述符、文件位置等。

  9. CPU 寄存器信息:保存进程在被中断或调度之前的 CPU 寄存器状态,以便恢复进程执行时的上下文。

  10. 进程调度信息:包括进程的调度参数,如时间片大小、调度队列指针等。

  11. 其他状态信息:可能还包括信号处理器状态、账户信息、统计数据等。

程序段:

进程执行的指令

数据段:

程序在运行时产生的数据、或是程序中定义的变量值。全局变量、常量、静态变量等。

进程状态的转变:

进程我们常说含有五种状态:

创建态:进程刚被创建的状态

就绪态:进程当前运行所需要的资源都已经拥有了,等待被CPU执行

运行态:进程正在被CPU所执行

阻塞态:进程在CPU执行时申请系统资源,主动放弃CPU的执行权,等待资源的分配

终止态:进程运行结束,或者是运行过程当中遇见了不可修复的错误被迫结束的状态。

操作系统管理各个状态的进程:

一般情况下操作系统是采用链表法,就是将同一个状态的进程PCB用链表串联起来,形成一个队列。

原语:

也就是具有原子性的一段指令,期间不允许被中断。

实现方式:通过关中断指令,和开中断指令来实现。

进程状态的控制:

进程状态的控制就是通过原语来实现的:

一个父进程会给自己的子进程分配一定的资源,这些进程与进程之间的资源关系就是树形的结构。

运行环境,就是指CPU当中的一些与进程信息有关寄存器内的信息:

  • PC寄存器:储存程序下一条执行指令的地址

  • IR寄存器:储存程序当前执行指令的地址

  • 通用寄存器:储存程序运行过程中一些变量

在进程进行切换的时候,会将进程的运行上下文储存进PCB当中。

进程之间的通信:

共享存储:

在物理内存当中划分一块区域当中共享空间,规定这块内存被多个进程共享。当多个进程同时操作共享内存空间数据的时候会使用P、V(同步互斥)操作来保证并发安全。

共享内存又被分为了:基于存储区的共享、基于数据结构的共享。

消息传递:

  • 直接通信方式:进程A中创建msg,然后使用原语send(B,msg),说明向B进程发送消息msg。于是A进程向B进程发送的msg便会进入B进程PCB块中的消息队列当中,B进程然后便可以使用原语receive(A,&msg)接收到A进程发送过来的消息msg。

  • 间接通信方式:进程A中创建msg,然后使用原语send(M,msg)往信箱M中发送消息msg,之后进程B便能够使用原语,receive(A,&msg)从信箱M中接收到消息。

管道通信:

进程使用系统调用向操作系统申请一块内存缓冲区,作为消息管道。管道使用的是固定区域,使用的循环队列。

线程:

线程的状态:

线程的组织与控制:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值