2026/4/15 16:54:50
网站建设
项目流程
青岛网站设计公司在哪找,社交电商系统开发,wordpress app 服务端,韶关市网站建设招标一#xff0c;操作系统#xff08;Operator System#xff09;1-1概念任何计算机内部都包含一个基本的程序集合#xff0c;成为操作系统#xff08;OS#xff09;。操作系统包括#xff1a;内核#xff08;进程管理#xff0c;进程调度#xff0c;文件管理#xff0…一操作系统Operator System1-1概念任何计算机内部都包含一个基本的程序集合成为操作系统OS。操作系统包括内核进程管理进程调度文件管理驱动管理等其他程序例如函数库shell程序等1-2设计操作系统的目的对下与硬件交互管理所有的软硬件资源对上为用户程序应用层程序提供一个良好的执行环境1-3核心功能操作系统“管理”硬件。如何管理先描述起来用struct结构体描述信息再组织用链表或者其他高效的数据结构将struct对象组织起来1-4系统调用和库函数概念在开发角度操作系统对外会表现为一个整体但是会暴露自身的部分接口供上层开发使用这部分由操作系统提供的接口称为系统调用。系统调用在使用上功能比较基础对用户的要求相对较高所以有心的开发者会对部分系统调用做封装从而形成库有了库就很方便上层用户和开发者进行二次开发。二进程Process2-1进程概念与基本操作概念进程是指程序的一个执行实例正在执行的程序等。 内核层面概念每个进程拥有独立的内存空间系统资源和执行状态是操作系统进行资源分配和调度和核心对象。操作系统描述进程的的数据结构—PCBprocess control blockPCB基本概念进程信息被放在一个叫做进程控制块的数据结构中可以理解为进程属性的集合。在Linux操作系统下的PCB是task_structtask_struct是Linux内核的⼀种数据结构它会被装载到RAM(内存)⾥并且包含着进程的信息。进程内核数据结构自己的代码和数据。进程task_struct自己的代码和数据。同一时刻可能会有多个可执行程序被加载到内存而操作系统要对这些可执行程序进行管理 在操作系统层面上就会在内部会建立一个task_stuct 对象里面保存了该可执行程序的代码地址数据地址等各种信息。将这些task_struct使用链表或者其他数据结构管理起来那么操作系统对进程的管理就转化为对链表的管理。2-2task_struct结构体内容标识符描述本进程的唯一标识符用来区别其他进程状态任务状态退出码退出信号等。优先级相对于其他进程的优先级内存指针包括程序代码和进程相关数据的指针还有和其他进程共享的内存块的指针上下文数据: 进程执⾏时处理器的寄存器中的数据IO状态信息: 包括显⽰的IO请求,分配给进程的IO设备和被进程使用的文件列表。其他信息......2-3查看进程1进程的信息可以通过/proc系统文件夹查看如要获取PID为1的进程信息你需要查看 /proc/1 这个文件夹。2大多数进程信息同样可以使用top和ps这些用户及工具来获取ps aux #显示所有进程信息top #动态查看进程资源占用3通过系统调用获取进程标识符系统调用getpid() #当前进程IDPID)getppid() #父进程IDPPID)2-4通过系统调用创建进程fork有两个返回值父子进程共享代码数据格子开辟空间私有一份采用写时拷贝fork之后通常要用if进行分流创建一个子进程将父进程的task_struct会拷贝一份给子进程但是会有部分的数据时需要修改的比如进程的唯一标识符pid。子进程会共享父进程的代码数据相当于发生了浅拷贝。pid_t pid fork(); if (pid 0) { // 子进程代码 } else { // 父进程代码 }三进程状态操作系统中会存在多个进程。每个进程可能会存在不同的状态有的进程正在运行有的进程正在被调度有的进程处于挂起等等。CPU要执行这些进程这些进程的task_struct中会保存指向代码和数据的指针。操作系统会维护一个运行队列running queue)存放要运行的task_struct这个队列就叫做调度队列其中的一个个task_struct就是要被调度的进程。本质上进程状态就是task_struct结构体中的一个变量用来记录当前进程的状态在操作系统内部通过宏定义的方式标识不同的状态。例如下面的状态在Kernel源代码的定义static const char *const task_state_array[] {R (running), /*0 */S (sleeping), /*1 */D (disk sleep), /*2 */T (stopped), /*4 */t (tracing stop), /*8 */X (dead), /*16 */Z (zombie), /*32 */};R运行状态running: 并不意味着进程一定在运行中它表明进程要么是在运⾏中要么在运⾏ 队列里。S睡眠状态sleeping): 可中断休眠浅度睡眠就是阻塞状态。该状态下的进程是可以被杀掉的。D(Disk sleep):不可中断休眠Disk是磁盘的意思。该状态下的进程是无法被杀掉的。比如一些进程在进行IO的时候是不允许被杀掉的。在这个 状态的进程通常会等待IO的结束。T停止状态stopped 可以通过发送 SIGSTOP 信号给进程来停⽌T进程。这个被暂停的 进程可以通过发送 SIGCONT 信号让进程继续运行。X死亡状态dead这个状态只是⼀个返回状态你不会在任务列表里看到这个状态。ttrancing stop追踪状态对我们的程序进行debug调试时的状态。打端点进程就被暂停了。运行状态running只要进程在调度队列中都处于运行状态。阻塞状态sleeping以scanf为例当执行scanf从键盘读取数据时未输入数据时操作系统会将当前进程的task_struct从调度队列中移除放入设备的阻塞队列中此时该进程就处于阻塞状态。直到键盘响应会将该进程重新放入调度队列的尾部继续运行。挂起状态在磁盘上会存在一块特定的分区叫做swap分区。当内存资源严重不足时操作系统会将一些不会被调度的进程的代码和数据交换到磁盘的swap分区在操作系统内部只保留task_struct部分。此时的状态称为挂起状态。阻塞挂起状态将阻塞队列中的进程 唤出到磁盘的swap分区上阻塞运行状态 将运行队列末端的进程唤出到磁盘的swap分区上z(zombie)僵尸状态我们创建子进程的目的是为了让子进程完成某种工作的。子进程完成后父进程需要直到完成的信息。所以子进程在执行完后必须要等待父进程获取它的退出信息获取之前该子进程的状态就是Z状态僵尸状态。当一个进程结束后它的代码和数据就会被释放所以它的退出信息只会保存在task_struct中。www.dongchedi.com/article/7596796484167991870www.dongchedi.com/article/7596795363345269272www.dongchedi.com/article/7596794242274869785www.dongchedi.com/article/7596794616406491673www.dongchedi.com/article/7596794741006926361www.dongchedi.com/article/7596795175406764606www.dongchedi.com/article/7596793478932677145www.dongchedi.com/article/7596795242100523582www.dongchedi.com/article/7596793952435634712www.dongchedi.com/article/7596794237552198206www.dongchedi.com/article/7596793977202917950www.dongchedi.com/article/7596793115990983230www.dongchedi.com/article/7596793478933004825www.dongchedi.com/article/7596792449260094014www.dongchedi.com/article/7596792631939007038www.dongchedi.com/article/7596791130403127870www.dongchedi.com/article/7596791924317946392www.dongchedi.com/article/7596790880242467352www.dongchedi.com/article/7596791003051573785www.dongchedi.com/article/7596789608952889881www.dongchedi.com/article/7596791092549599769www.dongchedi.com/article/7596790868842250776www.dongchedi.com/article/7596789823244419608www.dongchedi.com/article/7596788698675708441www.dongchedi.com/article/7596788604027322942www.dongchedi.com/article/7596787533708034585www.dongchedi.com/article/7596788604027093566www.dongchedi.com/article/7596788611551478297www.dongchedi.com/article/7596787074758787646www.dongchedi.com/article/7596786473111208510www.dongchedi.com/article/7596789487741895192www.dongchedi.com/article/7596787460911628824www.dongchedi.com/article/7596788150177956414www.dongchedi.com/article/7596785376535429656www.dongchedi.com/article/7596787074758459966www.dongchedi.com/article/7596785411063071294www.dongchedi.com/article/7596784416244924952www.dongchedi.com/article/7596783841885749784www.dongchedi.com/article/7596785713077977624www.dongchedi.com/article/7596783374216708632www.dongchedi.com/article/7596711254421750334www.dongchedi.com/article/7596457499428487742www.dongchedi.com/article/7596709834083877400www.dongchedi.com/article/7596458161352213017www.dongchedi.com/article/7596710698345153048