毕业设计php做网站,wordpress禁止适应屏幕,找人做网站应该注意什么,vue做的网站大全内核#xff1a;管理和分配计算机资源#xff08;即CPU、RAM和设备#xff09;的核心软件层Linux内核可执行文件采用#xff0f;boot#xff0f;vmlinuz或类似的路径名#xff0c;“z”表明内核是经过压缩的可执行文件。内核主要任务#xff1a; #xff08;1#xff…内核管理和分配计算机资源即CPU、RAM和设备的核心软件层Linux内核可执行文件采用bootvmlinuz或类似的路径名“z”表明内核是经过压缩的可执行文件。内核主要任务 1进程调度Linux属于抢占式多任务系统多个进程即运行中的程序可同时驻留于内存都能获得对CPU的使用权 2内存管理以高效、公平地方式在进程之间共享这一资源Linux采用了虚拟内存管理机制。 虚拟内存管理机制优势 a. 进程与进程之间、进程与内核之间彼此隔离一个进程无法读取或修改内核或掐他进程的内存内容 b. 只需将进程的一部分保持在内存中降低了每个进程对内存的需求量使得可以在内存中加载更多的进程。 3提供了文件系统内核在磁盘上提供有文件系统允许对文件执行创建、获取、更新、删除等操作 4创建和终止进程内核可以将新进程载入内存为其提供运行所需的资源CPU、RAM以及对文件的访问。 一旦进程执行完毕内核需要确保释放其占用的资源以供或许进程使用 5对设备的访问计算机外接设备鼠标、键盘、磁盘等可实现计算机与外部世界的通信。 内核为进程提供了访问设备的标准接口同时还仲裁多个进程对同一个设备的访问。 6联网内核以用户进程的名义收发网络消息数据包同时将该数据包路由至目标系统。 7提供系统调用API进程可以利用系统调用API请求内核去执行各种任务。 用户态和核心态 1CPU一般在这两种不同状态下运行执行硬件指令可使CPU在两种状态来回切换 2虚拟内存区域划分为用户空间部分、内核空间部分 3用户态下运行时CPU只能访问被标记为用户空间的内存试图访问内核空间的内存将会引发硬件错误 4核心态下运行时CPU既能访问用户空间的内存又能访问内核空间的内存。 5CPU在核心态下运行时可以执行特殊操作。如宕机halt、访问内存管理硬件、设备I/O操作的初始化 交换区磁盘空间中的保留区域作为RAM的补充进程可被保存至交换区内核维护的底层数据结构可将进程使用的文件名称转换为磁盘的物理位置内核维护每个进程的虚拟内存与计算机物理内存及磁盘交换区之间的映射关系。某进程可创建另一个进程真正含义某进程可以请求内核创建另一个进程。因进程间所有通信都需要内核提供的通信机制完成shell命令解释器用于读取用户输入的命令并执行相应的程序以响应命令。 1登陆shell用户刚登陆系统时由系统创建用以运行shell的进程。 2对于UNIX系统而言shell只是一个用户进程。 3登陆同一台计算机的不同用户同时可以使用不同的shell就单个用户来说情况也一样 4shell设计两个目的a. 人机交互 b. 解释shell脚本包含shell命令的文本文件 5shell内置有许多通常与编程语言相关的功能包括变量、循环、条件语句、I/O命令、函数等 6几种重要的shell a. Bourne shellsh历史最为悠久曾是UNIX第七版标配的shell包含许多常见特性I/O重定向、管道、文件名生成通配符、 变量、环境变量处理、命令替换、后台命令执行、函数等。 b. C shellcsh曾经时BSD系统的标配但与Bourne shell并不兼容为了保证在UNIX系统的移植性人们更倾向使用Bourne shell。 c. Korn shellkshATT贝尔实验室编写是Bourne shell的继任者同时吸收了C shell的很多交互特性 d. Bourne again shellbash:GNU项目对于Bourne shell的重新实现同时提供了与Korn shell和C shell类似的交互特性。 在Linux上Bourne shell正是由Bourne again shell仿真提供的
超级用户用户ID为0通常登录名为root用户密码文件etcpasswd包含用户名、用户IDUID、组ID、主目录、登陆shell用户组文件etcgroup组名、组IDGID、用户列表隶属于该组的用户登录名列表为了访问文件用户分为3类文件属主的用户文件用户同一组的用户其他用户由Shell启动的进程会继承3个已打开的文件描述符描述符0为标准输入描述符1为标准输出描述符2为标准错误。在stdio函数库中这几种描述符分别与文件流stdinstdoutstderr相对应C语言标准库的I/O函数stdio函数库fopenfclosescanfprintffgetsfputs stdio函数位于I/O系统调用层openclosereadwrite 等之上。过滤器从stdin读取输入加以转换再将转换后的数据输出到stdout常将拥有上述行为的程序称为过滤器如cat、grep、tr、sort、wc、sed、awk逻辑上将一个进程划分为以下几个部分也称为段 1文本程序的指令 2数据程序使用的静态变量 3堆程序可以从该区域动态分配额外内存 4栈随函数调用、返回而增减的一片内存用于为局部变量和函数调用链接信息分配存储空间。 19.子进程从父进程处继承数据段、栈段、堆段的副本后可以修改这些内容不影响父进程的“原版”内容。
有两种方式可以终止一个进程其一进程使用_exit()系统调用或相关的exit()库函数请求退出其二向进程传递信号将其“杀死”。进程的“终止状态”一个非负小整数可供父进程的wait()系统调用检测。终止状态为0表示进程“功成身退”非0表示有错误发生。大多数shell会将前一执行程序的终止状态保存于shell变量$?中。init进程系统引导时内核创建是“所有进程之父”该进程相应的程序文件为“sbininit”init的进程号为1总以超级用户权限运行。谁哪怕是超级用户都不能“杀死”init进程只有关闭系统才能终止该进程。init的主要任务是创建并监控系统运行所需的一系列进程。进程间通信IPC机制 1信号signal用来表示事件的发生 2管道亦即shell用户所熟悉的“”操作符和FIFO用于在进程间传递数据 3套接字供同一台主机或是联网的不同主机上所运行的进程之间传递数据。 4文件锁定为防止其他进程读取或更新文件内容允许某进程对文件的部分区域加以锁定 5消息队列用于在进程间交换消息 6信号量semaphore用来同步进程动作 7共享内存允许两个及两个以上进程共享一块内存。当某进程改变了共享内存的内容时其他所有进程会立即了解到这一变化。 26.内核、其他进程只要有相应的权限或进程自身均可向进程发送信号。
发生下列情况之一时内核可以向进程发送信号 1用户键入中断字符通常为CtrlC 2进程的子进程之一已经终止 3由进程设定的定时器告警时钟已经到期。 4进程尝试访问无效的内存地址。 28.在shell中可使用kill命令向进程发送信号在程序内部系统调用kill可提供相同的功能。
收到信号时进程会根据信号采取如下动作之一忽略信号 被信号“”杀死 先挂起之后再被专用信号唤醒。多个线程之间共享同一数据区域和堆每个线程拥有属于自己的栈。线程之间可以通过共享的全局变量进行通信。shell执行的每个程序都会在一个新进程内发起。比如shell创建了3个进程来执行以下管道命令在当前的工作目录下根据文件大小对文件进行排序并显示ls -l | sort -k5n | less伪终端是一对相互连接的虚拟设备也称为主从设备。在这对设备之间设有一条IPC信道可供数据进行双向传递。telnet和ssh都属于伪终端。