操作系统
艾伦lee
系借此向大家交流学习
展开
-
多进程多线程基础
一、概念1 概念(1)进程1)进程是操作系统资源分配的基本单位2)一个进程可以有多个线程,但至少有一个线程3)资源分配给进程,同一进程的所有线程共享该进程的所有资源4)同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),拓展段(堆存储)5)进程有独立的地址空间(2)线程1)线程是任务调度和执行的基本单位2)一个线程只能属于一个进程3)每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量或临时变量4)CPU分给线程,即真正在CP原创 2020-08-25 10:03:11 · 386 阅读 · 0 评论 -
磁盘调度算法
磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同的对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快,因此我们有必要为每个磁盘设备建立一个等待队列,常用的磁盘调度算法有以下四种:先来先服务算法(FCFS),最短寻道时间优先算法(SSTF),扫描算法(SCAN),循环扫描算法(CSCAN) 例:假定某磁盘共转载 2016-12-01 23:39:32 · 1366 阅读 · 0 评论 -
进程间通信方式
进程间通信方式 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常指父子进程关系。 命名管道(FIFO):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 消息队列(message queue):消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服...原创 2019-08-01 11:48:50 · 630 阅读 · 0 评论 -
wait和waitpid
wait和waitpid 一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。1 孤儿进程和僵尸进程 (1)孤儿进程:父进程先于子进程结...原创 2019-08-06 15:59:17 · 930 阅读 · 0 评论 -
fork()与vfork()函数
fork()与vfork()函数1 fork()函数 创建一个和当前进程映像一样的进程。#include <sys/types.h>#include <unistd.h>pid_t fork(void); 失败返回-1;成功返回:父进程返回子进程的进程ID(非负);子进程返回0。 fork会产生一个和父进程完全相...原创 2019-08-06 16:37:54 · 303 阅读 · 0 评论 -
ELF可执行文件的理解
ELF可执行文件的理解 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(object files)中都放了什么东西、以及都以什么样的格式去放这些东西。ELF是构成众多xNIX系统的基础之一。1 对象文件的三个种类1.1 可重定位的对象文件(Relocatable object file) ...原创 2019-08-06 17:23:15 · 4679 阅读 · 0 评论 -
死锁
死锁 死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程都将无法再向前推进。1 产生死锁的原因1.1 竞争资源 当系统中供多个进程共享的资源不足时,将引起进程对资源的竞争而产生死锁。 竞争资源引起的死锁,竞争的资源可以分为可剥夺性资源(某进程在获得这类资源后,该资源可以被其他进程或系统剥夺,如处理机和内存资源)和...原创 2019-08-06 21:33:31 · 605 阅读 · 0 评论 -
进程与线程
进程与线程1 进程1.1 为什么引入进程1.1.1 程序的顺序执行(1)程序执行的顺序性 程序在处理机上执行时,其操作只能严格地按照所规定的顺序执行,即后继操作只有在前一操作执行完毕之后才能进行。(2)程序环境的封闭性 程序执行时会独占系统的全部资源。(3)程序执行结果的确定性 程序执行的结果,只由初始条件和程序本身来确定,不...原创 2019-08-06 23:15:23 · 384 阅读 · 0 评论 -
Linux启动过程
Linux启动过程1 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动设备;2 读取并执行第一个启动设备内MBR(主引导分区)的boot loader(即grub和lilo等程序);boot loader是内核运行之前的一段程序,为内核运行做好准备,初始化硬件设备;3 依据boot loader的设置加载内核(kernel),kernel会开始检测硬件与加载驱动程序;...原创 2019-08-06 23:39:09 · 193 阅读 · 0 评论