Linux内核之进程和文件共享

1.Shell命令的执行和进程

Shell 命令可以是内部或者外部命令。

内部(内置)命令(internal (built-in) command)的代码本身就是shell进程的一部分。LINUX shell中的一些内部命令如.alias、bg、cd 、continue、echo 、exec 、exit 、fg 、jobs 、pwd 、set 、shift 、test 、time 、umask 、unset和wait。

外部命令是(external command)命令代码以文件的形式出现的称为;文件内容可以是二进制代码或者shell脚本。通常使用的一些外部命令如grep、more 、cat 、mkdir 、rmdir 、ls 、sort 、ftp 、telnet 、lp和ps 。

shell先后使用fork和exec系统调用来执行一个外部二进制命令。

2.fork和exec

系统先用fork复制一个与父进程相同的暂存进程,这个进程与父进程的唯一区别是PID。然后暂存进程以exec方式加载实际要执行的程序。

3.进程有关命令

ps命令用来查看系统中运行的进程的各种属性

top命令:实时监视CPU的活动状态。该命令显示系统中CPU密集型任务的状态并且允许你交互地控制这些进程。

kill命令:终止指定PID的进程

4.作业管理

前台foreground执行:

当键入命令并敲<Enter>后,

•shell执行命令

•在当前命令执行结束即shell返回前,你不能执行任何命令。

需要运行一个要花费很长时间才能完成的LINUX命令(或者任一这样的程序),当命令执行时,你无法做其它工作。

后台background执行命令

LINUX可以在执行命令的同时做其他工作

?在命令后面加上一个“与”操作符号(&),使该命令在后台操作。

?Linux内核中的文件机制

?硬链接和符号链接

时间: 2024-10-03 13:38:38

Linux内核之进程和文件共享的相关文章

Linux内核分析——进程的描述和进程的创建

Linux内核分析——进程的描述和进程的创建 20135111李光豫 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验内容 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/linux-3.18.6/include/linux/sched.h#1235: 分析fork函数对应的内核处理过程sys_clone,理解创建一个新进

Linux内核学习-进程

先说几个术语: 一.Linux进程的五个段 下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的.重点:代码段.数据段.堆栈段,这是一个概念堆.栈.全局区.常量区,这是另一个概念1)代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存中的镜像.代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作--它是不可写的.代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域.这部分

深入Linux内核架构——进程管理和调度(上)

如果系统只有一个处理器,那么给定时刻只有一个程序可以运行.在多处理器系统中,真正并行运行的进程数目取决于物理CPU的数目.内核和处理器建立了多任务的错觉,是通过以很短的间隔在系统运行的应用程序之间不停切换做到的.由此,以下两个问题必须由内核解决:除非明确要求,否则应用程序不能彼此干扰:CPU时间必须在各种应用程序之间尽可能公平共享(一些程序可能比其他程序更重要).本篇博文主要涉及内核共享CPU时间的方法以及如何在进程之间切换(内核为各进程分配时间,保证切换之后从上次撤销其资源时执行环境完全相同)

Linux 内核开发 - 进程空间

1.1 虚拟内存 Linux 是一个多任务的系统,如果每个任务都独立的占用内存,则实际的物理内存将很快消耗殆尽,实际上对于前台正在运行的任务来说,所需要要的内存并不多,很多任务基本不需要运行,也就没有必要一直占用内存,虚拟内存技术采用硬盘来充当一部分内存,当内存不足时就将不需要在内存中使用的数据搬移到硬盘中去,当任务需要运行时又将硬盘中的数据搬回物理内存. 虚拟内存技术不仅起到了保护操作系统的作用,而且使得用户程序可以使用到比实际物理内存更大的地址空间,屏蔽了实际物理内存对用户地址空间的影响.

深入理解Linux内核-进程

1.进程的静态特性 进程:程序执行时的一个实例 进程描述符(task_struct): 进程的基本信息(thread_info).指向内存区描述符的指针(mm_struct).进程相关的tty(tty_struct).当前目录(fs_struct).指向 文件描述符的指针(files_struct).所接收的信号(signal_struct) 进程状态:1.可运行状态(TASK_RUNNING):正在运行或者准备执行 2.可中断的等待状态(TASK_INTERRUPTIBLE):进程挂起,产生硬

Linux内核中进程上下文和中断上下文的理解

参考: http://www.embedu.org/Column/Column240.htm http://www.cnblogs.com/Anker/p/3269106.html 用户空间与内核空间 有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件-->内核空间-->用户空间.如下图所示: 需要注意的细节问题: (1) 内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据.不管是内核空间还是用户空间,它们都处于虚拟空间中.

Linux内核分析——进程的切换和系统的一般执行过程

进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 (一)进程调度与进程调度的时机分析 1.不同类型的进程有不同的调度需求 第一种分类: (1)I/O-bound:频繁进行I/O,花费很多时间等待I/O操作的完成. (2)CPU-bound:计算密集型,需要大量CPU时间进行计算. 第二种分类: (1)批处理进程:不必交互.很快响应. (2)实时进程:要求响应时间短. (3)交互式进程(shell). 2.调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程

20135239 益西拉姆 linux内核分析 进程的切换和系统的一般执行过程

week 8 进程的切换和系统的一般执行过程 [ 20135239 原文请转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] 一.进程调度与进程调度的时机分析 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已.对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制更为关键. 不同类型的进程有不同的调度需求 第一

Linux内核分析——进程描述与创建

20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验内容: 1.可执行程序的执行环境$ ls -l /usr/bin 列出/usr/bin下的目录信息Shell本身不限制命令行参数的个数,命令行参数的个数受限于命令自身例如,int main(int argc, char argv[])又如, int main(int argc, char argv[], char