操作系统课外实践报告Linux进程管理


    
    操作系统课外实践报告


    项 目 名 称: Linux 进程理
    班 级: 软件工程(10Net)
    组 成 员:
    指 导 教 师:











    项目基信息
    项目名称

    项目简介
    Linux 进程表示进程理进程创建进程销毁系统解学
    Linux 种动态系统够适应断变化计算需求Linux 计算需求表现进程 通抽象中心进程短期(命令行执行命令)长期(种网络服务)进程调度进行般理显极重户空间进程进程标识符(PID)表示户角度 PID 数字值惟标识进程 PID 进程整生命期间会更改 PID 进程销毁重新进行缓存见总理想户空间创建进程采种方式执行程序(会导致新进程创建)程序调 fork exec 系统调fork 调会导致创建子进程 exec 调会新程序代前进程文
    首先展示进程核表示核理然进程创建调度种方式(处理器)介绍进程销毁
    进程表示
    Linux 核进程相称 task_struct 结构表示结构包含表示进程必需数外包含量数统计(accounting)维护进程关系(父子) task_struct 完整介绍超出文范围清单 1 出 task_struct 部分代码包含文探索特定元素task_struct 位 linuxincludelinuxschedh

    清单 1 task_struct 部分
    struct task_struct {

    volatile long state
    void *stack
    unsigned int flags
    int prio static_prio
    struct list_head tasks
    struct mm_struct *mm *active_mm
    pid_t pid
    pid_t tgid
    struct task_struct *real_parent
    char comm[TASK_COMM_LEN]
    struct thread_struct thread
    struct files_struct *files
    清单 1 中预料中项执行状态堆栈组标志父进程执行线程()开放文件稍会进行详细说明里简单加介绍state 变量表明务状态特位常见状态:TASK_RUNNING 表示进程正运行排运行队列中正运行TASK_INTERRUPTIBLE 表示进程正休眠TASK_UNINTERRUPTIBLE 表示进程正休眠醒TASK_STOPPED 表示进程停止等等
    flags 定义指示符表明进程否正创建(PF_STARTING)退出(PF_EXITING)进程前否分配存(PF_MEMALLOC)执行程序名称(包含路径)占 comm(命令)字段
    进程会赋予优先级(称 static_prio)进程实际优先级基加载素动态决定优先级值越低实际优先级越高
    tasks 字段提供链接列表力包含 prev 指针(指前务) next 指针(指务)
    进程址空间 mm active_mm 字段表示mm 代表进程存描述符 active_mm 前进程存描述符(改进文切换时间种优化)
    thread_struct 标识进程存储状态元素赖 Linux 运行特定架构 linuxincludeasmi386processorh 样例子结构找该进程执行文切换存储(硬件注册表程序计数器等)

    进程理
    进程数
    Linux 然进程动态分配需考虑进程数核进程数称 max_threads 符号表示 linuxkernelforkc 找通 procsyskernelthreadsmax proc 文件系统户空间更改值
    现 Linux 理进程情况进程动态创建动态分配 task_struct 表示例外 init 进程身总存静态分配 task_struct 表示 linuxarchi386kernelinit_taskc 找样例子
    Linux 进程分配两种方式第种方式通哈希表 PID 值进行哈希计算第二种方式通双链循环表循环表非常适合务列表进行迭代列表循环没头尾 init_task 总存作继续前迭代锚点遍历前务集例子
    务列表法户空间访问该问题容易解决方法模块形式核插入代码清单 2 中示简单程序会迭代务列表会提供关务少量信息(namepid parent 名)注意里模块 printk 发出结果查具体结果通 cat 实工具(实时 tail f varlogmessages)查 varlogmessages 文件next_task 函数 schedh 宏简化务列表迭代(返回务 task_struct 引)

    清单 2 发出务信息简单核模块(procsviewc)
    #include
    #include
    #include

    int init_module( void )
    {
    * Set up the anchor point *
    struct task_struct *task &init_task

    * Walk through the task list until we hit the init_task again *
    do {

    printk( KERN_INFO *** s [d] parent s\n
    task>comm task>pid task>parent>comm )

    }
    while ( (task next_task(task)) &init_task )

    return 0

    }

    void cleanup_module( void )
    {
    return
    }
    清单 3 示 Makefile 编译模块编译时 insmod procsviewko 插入模块象 rmmod procsview 删

    清单 3 构建核模块 Makefile
    插入varlogmessage objm + procsviewo
    KDIR libmodules(shell uname r)build
    PWD (shell pwd)
    default

    (MAKE) C (KDIR) SUBDIRS(PWD) modules s 显示输出示中里空闲务(称 swapper) init 务(pid 1)
    Nov 12 221951 mtjdesktop kernel [8503873310] *** swapper [0] parent swapper
    Nov 12 221951 mtjdesktop kernel [8503904182] *** init [1] parent swapper
    Nov 12 221951 mtjdesktop kernel [8503904215] *** kthreadd [2] parent swapper
    Nov 12 221951 mtjdesktop kernel [8503904233] *** migration0 [3] parent kthreadd

    注意标识前正运行务Linux 维护称 current 符号代表前运行进程(类型 task_struct)果 init_module 尾部插入行代码:
    printk( KERN_INFO Current task is s [d] current>comm current>pid )
    会:
    Nov 12 224845 mtjdesktop kernel [10233323662] Current task is insmod [6538]
    注意前务 insmod init_module 函数 insmod 命令执行文运行current 符号实际指函数(get_current) arch 关头部中找( linuxincludeasmi386currenth 找)
    进程创建
    系统调函数
    您已系统调模式情况系统调命名 sys_* 提供某初始功实现调(例错误检查户空间行)实际工作常常会委派外名 do_* 函数
    妨亲户空间创建进程户空间务核务底层机制致二者终会赖名 do_fork 函数创建新进程创建核线程时核会调名 kernel_thread 函数(参见 linuxarchi386kernelprocessc)函数执行某初始化会调 do_fork
    创建户空间进程情况类似户空间程序会调 fork会导致名 sys_fork 核函数系统调(参见 linuxarchi386kernelprocessc)函数关系图 1 示

    图 1 负责创建进程函数层次结构

    图 1 中 do_fork 进程创建基础 linuxkernelforkc 找 do_fork 函数(合作函数 copy_process)
    do_fork 函数首先调 alloc_pidmap该调会分配新 PID接do_fork 检查调试器否踪父进程果 clone_flags 设置 CLONE_PTRACE 标志做执行 fork 操作准备 do_fork 函数会调 copy_process传递标志堆栈注册表父进程新分配 PID
    新进程 copy_process 函数作父进程副创建函数执行启动进程外操作启动进程进行处理copy_process 第步验证 CLONE 标志确保标志致果致会返回 EINVAL 错误接询问 Linux Security Module (LSM) 前务否创建新务
    接调 dup_task_struct 函数( linuxkernelforkc )会分配新 task_struct 前进程描述符复制新线程堆栈设置状态信息会初始化会控制返回 copy_process控制回 copy_process 限制安全检查外会执行常规理包括新 task_struct 种初始化会调系列复制函数复制进程方面复制开放文件描述符(copy_files)复制符号信息(copy_sighand copy_signal)复制进程存(copy_mm)终复制线程(copy_thread)
    新务会指定处理程序时允许执行进程处理程序进行额外检查(cpus_allowed)新进程优先级父进程优先级继承执行部分额外常规理控制会返回 do_fork时新进程存尚未运行do_fork 函数通调 wake_up_new_task 修复问题函数( linuxkernelschedc 找)初始化某调度程序常规理信息新进程放置运行队列然唤醒便执行旦返回 do_fork PID 值返回调程序进程完成

    进程调度
    存 Linux 进程通 Linux 调度程序调度然调度程序超出文讨范围 Linux 调度程序维护针优先级组列表中保存 task_struct 引务通 schedule 函数( linuxkernelschedc )调根加载进程执行历史决定佳进程
    进程销毁
    进程销毁通事件驱动 — 通正常进程结束通信号通 exit 函数调进程退出进程结束助核函数 do_exit( linuxkernelexitc )调程图 2 示

    图 2 实现进程销毁函数层次结构

    do_exit 目前进程引操作系统删(针没享资源)销毁程先通设置 PF_EXITING 标志表明进程正退出核方面会利避免进程删时试图处理进程进程生命期间获种资源分离开通系列调实现 exit_mm(删存页) exit_keys(释放线程会话进程安全键)do_exit 函数执行释放进程需种统计通调 exit_notify 执行系列通知(告知父进程子进程正退出)进程状态更改 PF_DEAD会调 schedule 函数选择执行新进程请注意果父进程通知必需(进程正踪)务会彻底消失果需通知调 release_task 实际收回进程部分存
    安阳师范学院
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    操作系统进程管理实验报告

    操作系统进程管理实验报告实验一 进程管理1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别;(2)进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;...

    1年前   
    360    0

    linux操作系统目录结构及主要内容

    Linux操作系统目录结构及主要内容   “/”根目录部分有以下子目录:     /usr(unix software resource) 目录包含所有的命令、程序库、文档和其它文件。...

    5年前   
    1338    0

    操作系统实践报告

    学 号: 实践课设计报告课程名称计算机操作系统题 目模拟设计存储管理的分配与回收学 院计算机科学与技术学院专 业计算机科学与技术班 级姓 名指导教师年月日模拟...

    1年前   
    459    0

    精细化管理进程报告

    西安市住房保障和房屋管理局 城市精细化管理工作进展情况汇报 根据市考办发[2013]35号文件《关于印发西安市城市精细化管理工作考核办法的通知》精神,结合我局工作实际,开展了一系列的整治活...

    5年前   
    1019    0

    Linux系统管理

    Linux系统管理(1~2章) Linux内核版本 例如:2 5 7 中间为奇数表示开发版,中间为偶数表示稳定版例如:2 6 18 图形界面转向字符终端:ctrl+alt+Fn 重启:...

    12年前   
    11869    0

    进程调度算法的实现计算机操作系统课程设计

    题目2 进程调度算法的实现2.1 题目的主要研究内容及预期达到的目标(1)设计进程控制块; (2)设计多个进程队列; (3)设计多个进程(≥20); (4)动态生成时间片、执行时间和优先级,...

    3年前   
    584    0

    大学生暑期课外实践报告

    大学生暑期课外实践报告  在这个对大学生眼球越来越高的时代,要想在社会中立于不败之地,要想使自己的人生价值得以更好的实现,我们不仅要学好书本上的理论知识,更要提早接受熟悉并且掌握再这个复杂社会...

    12年前   
    407    0

    中标普华Linux桌面操作系统银行案例-系统软件解决方案

    中标普华Linux桌面操作系统银行案例-系统软件解决方案  项目背景:  为了加强城市商业银行在其范围内对资金清算的需要,由城市商业银行中心牵头,经过多次的需求调研,决定建设现代化的支付清算及...

    9年前   
    423    0

    中标普华Linux桌面操作系统酒店案例-系统软件解决方案

    中标普华Linux桌面操作系统酒店案例-系统软件解决方案  案例引言:  酒店信息化管理系统是近来酒店信息化管理的一个发展方向,可帮助各级酒店管理人员,对酒店中大量动态的、错综复杂的数据和信息...

    10年前   
    435    0

    linux编程SHELL编程实验报告

    Linux编程课程设计报告题 目: Linux Shell编程 专 业 学 号 姓 名 ...

    1年前   
    609    0

    成本与进程管理中文-2.2

     本文档由香当网(https://...

    6年前   
    18317    0

    成本与进程管理中文-2.1

     本文档由香当网(https://...

    12年前   
    5395    0

    课外实践活动总结3篇

    课外实践活动总结3篇  课外实践活动总结  一片叶子属于一个季节,年轻的莘莘学子拥有绚丽的青春年华。谁说意气风发,我们年少轻狂,经受不住暴雨的洗礼?谁说象牙塔里的我们两耳不闻窗外事,一心只读圣...

    2年前   
    469    0

    模拟进程创建、终止、阻塞、唤醒原语操作系统原理

    操作系统原理 题 目:模拟进程创建、终止、阻塞、唤醒原语院 (部): 管理工程学院专 业: 信息管理与信息系统班 级: 信管姓 名: 学 号: 实验题目一:模拟进...

    3年前   
    545    0

    操作系统实习报告样本

    操作系统实习报告样本  1 操作系统实习报告内容(1)    基本信息:完成人姓名、学号、报告日期(2)    实习内容(3)    实习目的(4)    实习题目(5)    设计思路和流程...

    9年前   
    572    0

    操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)

    操作系统实验(进程调度+存储管理+磁盘调度++银行家算法+文件系统设计)实验三 进程调度一、 实验目的多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略来决定那个进程优先占有处...

    3年前   
    642    0

    城镇建设进程工作报告

    城镇建设进程工作报告  经过30多年的发展,中国已经进入城镇化快速增长时期,XX年全国城镇化率达到46.6%,年均增加0.9个百分点。城镇化已成为中国推进新型工业化、解决就业、扩大内需的重要举...

    12年前   
    618    0

    **县小康进程分析—调研报告

    **县小康进程分析—调研报告 **县小康进程分析 党的十六大报告明确指出我们已经胜利实现了现代化建设“三步走”战略的第一步、第二步目标,人民生活总体上实现了由温饱到小康的历史性跨越,十六大的胜...

    9年前   
    433    0

    linux与windows 编程区别

    linux windows 编程的区别 如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix...

    7年前   
    2605    0

    linux学习心得

    linux学习心得第一篇:linux学习心得linux学习心得我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2014,后来又有了xp,上大学时又有了win7。说...

    10年前   
    347    0

    文档贡献者

    z***u

    贡献于2022-10-19

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档