Linux内核结构与进程管理.ppt

Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度程序( S C H E D)负责控制进程访问C P U。保证进程能够公平地访问C P U,同时保证内核可以准时执行一些必需的硬件操作。 2. 内核管理程序( M M)使多个进程可以安全地共享机器的主存系统,并支持虚拟内存。 3. 虚拟文件系统( V F S)。通过提供一个所有设备的公共文件接口, V F S抽象了不同硬件设备的细节。此外, V F S支持与其他操作系统兼容的不同的文件系统格式。 4. 网络接口( N E T)提供对许多建网标准和网络硬件的访问。 5. 进程间通信( I P C)子系统为进程与进程之间的通信提供了一些机制。 这些子系统虽然实现的功能相对独立,但存在着较强的依赖性(调用依赖模块中相应的函数),所以说linux内核是单块结构(monolithic)的,而windows体系结构是微内核microkernel的。,Linux启动流程,从BIOS到KERNEL MBRKERNELKERNEL自解压内核初始化内核启动(start_kernel函数,在linux内核源代码树的/usr/src/linux/init/main.c中) 2. 内核启动创建1进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程)。此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等 对于Redhat来说,执行的顺序为 /etc/rc.d/rc.sysinit 由init执行的第一个脚本 /etc/rc.d/rc RUNLEVEL RUNLEVEL为缺省的运行模式 /etc/rc.d/rc.local 运行模式2、3、5时会运行的脚本 /sbin/mingetty(或getty) 等待用户登录 /etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。 RUNLEVEL06 0halt, 1单用户,2多用户,3多用户并启动NFS服务 4保留,5运行xdm(X window)以图形界面方式登录 6reboot,Linux中用户登陆流程linux进程的四要素,程序 PCB 地址空间 系统堆栈空间 PCB进程创建时内核为其分配的一个核心数据结构,进程自身不能直接存取。 系统堆栈空间进程运行在核心态时使用的堆栈,和PCB连在一起,共8KB,其中PCB约占1000字节,系统堆栈空间约占7200字节。 2.2 内核中linux进程个数有最大值限制(4092)。但2.4以后,系统中的进程个数受限于系统的物理内存数,即限定所有进程的PCB及系统堆栈(8K)占用的空间1/2的物理内存总和。例64M内存进程数64M/2/8K4K,PCB中的重要信息,身份信息pid,uid,gid,euid,egid等; 状态信息running, interruptible, non-interruptible, stopped, zombie 调度信息policy, priority, rt_priorty, need_resched policy即进程的类别,分SCHED_FIFO, SCHED_RR, SCHED_OTHER三种,前两种为实时进程,后一种为非实时进程 IPC信息如定义对某些信号的处理等 家族信息父进程、兄弟进程、子进程信息 时钟和定时信息 文件系统 存储管理,进程的创建,进程创建fork , clone, vfork 父子进程共享资源的形式 a.不共享(fork时缺省) b.部分共享 c.完全共享(线程),include int myvar0; void main int pid; pid fork; system call if pid 0 error occurred printf“fork failed.”; exit-1; system call else if pid 0 child process printf“child process cutingn”; myvar 1; else parent process wait; system call, wait for children completion printf“child complete.”; myvar ; printf“father,myvard”,myvar; exit0; ,fork实例,进程调度,调度时机 a. 用户进程自愿放弃CPU,如执行sleep系统调用; b.系统调用中,需要等待时,直接调用schedule进行调度; c.系统调用、中断或异常处理完成后,返回到用户空间前,若当前进程的PCB中的need_resched 1,则发生调度; 调度策略基于进程的权值(weight,即动态优先级) 实时进程 weight 1000rt_priority (1000) 分时进程 weight counter 20 nice (1000) 其中rt_priority是实时进程的优先级 counter进程还剩余的时间片值 nice进程优先级的调整值 (均在进程的PCB中标识),

linux 进程管理 ppt,Linux内核结构与进程管理.ppt相关推荐

  1. 在Linux系统下实现进程,在Linux2.6内核下实现进程隐藏

    很早以前的小程序,比较简单但是觉得有趣 原理很简单,Linux查看进程的命令ps是通过系统调用sys_getdents实现,sys_getdents用户获取一个指定路径下的目录条目,实际上就是枚举 / ...

  2. Linux进程描述符task struct结构体详解--Linux进程的管理与调度(一)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 日期 内 ...

  3. linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?进程虚拟地址4G指拥有4G的寻址能力,需要页表转换为实际物理地址,每个进程用到的内核是直接映射,地址的进程地址-3G的关系

    linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解? 问: linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解? 每个进程所拥有的4G独立的虚拟内存空间 ...

  4. linux线程能删除自身吗,Linux内核本身和进程的区别 内核线程、用户进程、用户...

    这个概念是很多人都混淆的了,我也是,刚开始无法理解OS时,把Linux内核也当做一个进程. 其实内核本身不是以进程形式存在的,最多在初始化的过程中表现得就像一个进程,但是内核绝对没有进程的数据结构ta ...

  5. Linux的进程/线程/协程系列4:进程知识深入总结:上篇

    Linux的进程/线程/协程系列4:进程/线程相关知识总结 前言 本篇摘要: 1. 进程基础知识 1.1 串行/并行与并发 1.2 临界资源与共享资源 1.3 同步/异步与互斥 1.4 进程控制原语 ...

  6. linux 进程通信机制,linux的进程通信机制小结

    linux向应用软件提供下列进程间通信手段: ####第一类通信方式:只能用于父进程与子进程之间,或者两个兄递进程之间. >管道Pipe >信号Signal >跟踪Trace 管道: ...

  7. Linux的用户空间与内核空间

    一. 简介 Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间.两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针 ...

  8. 【Linux系统编程】Linux文件操作

    00. 目录 文章目录 00. 目录 01. 文件描述符 02. 常用文件IO函数 2.1 open函数 2.2 close函数 2.3 read函数 2.4 write函数 03. 案例实战 04. ...

  9. linux c文件操作,Linux C 文件的输入/输出操作

    10.1 文件I/O操作概述 在Linux系统中,文件I/O操作可以分为两类,一类是基于文件描述符的I/O操作,另一类是基于数据流的I/O操作. 10.1.1 文件描述符简介 在文件操作一章中,也经常 ...

最新文章

  1. setInterval和setTimeout的区别
  2. a byte of python-《A Byte of Python》笔记
  3. UVa307 - Sticks(DFS+剪枝)
  4. 并查集杭电1272小希的迷宫
  5. php如何解决报错,php 启动报错如何解决_PHP教程
  6. JS or C#?不存在的脚本之争
  7. android内核调试的步骤
  8. uniapp与微信小程序常用api
  9. 金彩教育:如何提升自然流量
  10. 刘夏真的简历中国科学院计算机所,一个中科院,四个985,还有一个志愿留在本校,这个学霸考研宿舍是怎样炼成的?...
  11. python温度转换代码
  12. 论文笔记:Straight to the Tree: Constituency Parsing with Neural Syntactic Distance
  13. android wifi 框架图,android wifi框架
  14. 论文笔记:BPR-Bayesian Personalized Ranking from Implicit Feedback | 推荐系统BPR算法分析
  15. Android6.0 高通平台 is 32-bit instead of 64-bit 问题
  16. 硬件设计与实践:16位CPU设计
  17. 便利蜂java面试题_便利蜂20200507笔试题(Java)
  18. 大数据各框架的原理与知识点
  19. 企业局域网络综合配置(华为)
  20. 黑色简约多功能工具箱去水印外卖流量主小程序源码

热门文章

  1. 提高显微镜分辨率方法_Nat Protoc | 利用激光干涉获得超高分辨率显微镜
  2. Vue.js 实现v-if和v-else来切换CSS样式
  3. 使用Certbot 生成 https 证书
  4. mysql通配符查询 性能_使用mysql5.7新特性解决前通配符查询性能问题
  5. apache服务器配置tls_Apache服务器配置https
  6. deepin系统中.txt文件图标显示内容问题_深度系统Deepin 20最新正式版发布:从DDE到应用全面升级-Deepin 20,深度系统 ——快科技(驱动之家旗下媒体)-...
  7. nginx stream代理
  8. nginx注册为windows系统服务
  9. windows cmd 如果失败了则暂停
  10. mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明