当前位置:首页 » 操作系统 » linux操作系统实验

linux操作系统实验

发布时间: 2022-08-29 21:18:29

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

什么是进程

比如:windows上安装的QQ,我们会将其称为QQ程序,那么当QQ运行之后,在任务管理器中,我们可以看到QQ程序在运行着,此时,我们称其为:QQ进程。

言简意赅总结:当我们运行一个程序,那么我们将该程序叫进程

注意:
1.当程序运行为进程后,系统会为该进程分配内存,以及运行的身份和权限。
2.在进程运行的过程中,服务器上回有各种状态来表示当前进程的指标信息。

进程是已启动的可执行程序的运行实例,进程有以下组成部分:

分配内存, 已分配内存的地址空间
安全属性, 进程的运行身份和权限
进程代码, 运行一个或多个的线程
进程状态, 进程运行后的多种状态
静态程序, 二进制文件, 静态/bin/ls, /usr/sbin/sshd
动态进程, 程序运行的过程, 有生命周期及运行状态

进程的运行环境,包括以下几个部分:

局部和全局变量
当前的调度上下文
分配给进程使用的系统资源,例如文件描述符、网络端口等
给进程分配对应的pid,ppid

程序和进程的区别

1.程序是数据和指令的集合,是一个静态的概念,比如/bin/ls、/bin/cp等二进制文件,同事程序可以长期存在系统中。

2.进程是一个程序的运行过程,是一个动态概念,进程是存在生命周期概念的,也就是说进程会随着程序的终止而销毁,不会永远在系统中存在。

进程的生命周期


程序运行时进程的状态关系:

1.当父进程接收到任务调度时,会通过fork派生子进程来处理,那么子进程会集成父进程的衣钵。
2.子进程在处理任务代码时,父进程会进入等待的状态...
3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成了僵尸进程。
4.每个进程都会有自己的PID号,(process id)子进程则PPID

⑵ 操作系统进程实验linux下C实现 POSIX 下进程控制的实验程序 下面有不完整的代码,求补充 实在没法儿了..

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
//#include <ctype.h>

#define MAX_CHILD_NUMBER 10;

int proc_number=0;
void do_sth();

int main(int argc, char* argv[]){
int child_proc_number=MAX_CHILD_NUMBER;
int i, id;
pid_t child_pid;
pid_t pid[10]={0};
// if(argc>1){
// child_proc_number=atoi(argv[1]);
// child_proc_number=(child_proc_number>10)?10:child_proc_number;
// }
//创建进程
for (i=0; i<child_proc_number; i++){
if( (child_pid=fork())==0 ){
proc_number=i;
do_sth();
}else{
pid[i]=child_pid;
}
}
//KILL PROC
if(child_pid!=0){
printf("the pid you want to kill(q to quit): ");
while(scanf("%d",&id)){
if (id==113)
break;
else
kill(id,SIGKILL);

}
}
//KILL ALL
kill(0,SIGKILL);

return 0;
}

void do_sth(){
for(;;){
printf("this it process No.%d and its pid is %d.\n",proc_number,getpid());
sleep(2);//主动阻塞两秒钟
}
}

⑶ linux操作系统的实验怎么做

你这相当于叫人写个shell...
具体实现思路应该有两种
A.用system函数调dos命令来实现,这其实是取巧了。
B.完全自己真正写个命令解释程序。这可以分成三步来实现
第一步
要自己设计一个内部命令表,按你的要求,采用模块化的方法,这个表就用结构体来做
struct cmd_table{
char * cmd_name ; //内部命令名字符串
void ( * cmd_func) (void) ;//指向对应于内部命令函数的指针
}
commands [ ] = {
" DIR" ,dir ,
" COP" ,cop ,
" ERA" ,era ,
" DIS" ,dis ,
"END",end,
} ;
//要达到真正的面向对象模块化编程, 可以再定义个维数宏,来让搜索内部命令表时能确切
知道内部命令表中内部命令的数目。
# define dim ( x)(sizeof(x)/sizeof (x [0]))

第二步
获取键盘命令
void get cmdln (char * cmd_buffer)
{
show_prompt() ; /*显示命令提示符*/
get_cmd (cmd_b uffer) ; /*获取键盘命令行并进行大小写*/
take_para (cmd_buffer) ; /*分离出命令名及参数*/
}

呵呵,抱歉,我要赶飞机去了,下面的我以后在写。。。。。
预祝国庆节快乐!!!!

⑷ 求解关于linux操作系统的代码怎么写 网络管理实验 1.新建一个文件test.c 查看其权限

  1. touch test.c

    ls -l test.c

  2. chmod 444 test.c

  3. vi test.c

    #include<stdio.h>
    main()
    {
    printf("HelloWorld! ");
    }

    cc -o test test.c

    ls -l

    chmod 666 test

    ./test

  4. chmod +x test

    ./test

  5. chmod 742 test.c

  6. vi /etc/sysconfig/network-scripts/ifcfg-eth0

    自己配吧

  7. 找个地址ping就是了

⑸ Linux进程通信实验报告

一、实验目的:
进一步认识并发(并行)执行的概念,区别顺序执行和并发(并行)执行。

分析进程争用临界资源的现象,学习解决进程排斥的方法。

二、实验环境:

一台至少具有256MB内存的计算机,并安装Red Hat Linux 9的Linux操作系统。

三、实验内容:

1. 预备知识
fork函数调用:创建一个新进程。

getpid函数调用:获得一个进程的pid。

lockf系统的调用:在进程同步控制中为进程加锁。

2. 编写一段程序(程序名为fork1.c),使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。

(1)进入Linux操作系统。

(2)打开终端。进入vi编译器。

(3)输入源程序代码。

(4)按Esc键,进入命令模式后,输入“: wq文件名”就可以运行该程序了。

⑹ 小弟有一个Linux操作系统课程留的实验:写一个mygetcwd()函数,要求显示当前工作目录,不

相关函数:get_current_dir_name, getwd, chdir

头文件:#include <unistd.h>

定义函数:char * getcwd(char * buf, size_t size);

函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。

注:
1、在调用此函数时,buf 所指的内存空间要足够大。若工作目录绝对路径的字符串长度超过参数size 大小,则返回NULL,errno 的值则为ERANGE。
2、倘若参数buf 为NULL,getcwd()会依参数size 的大小自动配置内存(使用malloc()),如果参数size 也为0,则getcwd()会依工作目录绝对路径的字符串程度来决定所配置的内存大小,进程可以在使用完次字符串后利用free()来释放此空间。

返回值:执行成功则将结果复制到参数buf 所指的内存空间, 或是返回自动配置的字符串指针. 失败返回NULL,错误代码存于errno.

范例
#include <unistd.h>
main()
{
char buf[80];
getcwd(buf, sizeof(buf));
printf("current working directory : %s\n", buf);
}

执行:
current working directory :/tmp

⑺ Linux 操作系统的启动与初始化实验中gdb 输入c后停在continuing 不往下运行是怎么

你是否调用了阻塞的socket函数?比如recv,没有收到数据之前,线程是不会从该函数中返回的,也就是被阻塞了

⑻ linux操作系统的实验问题……求具体应该输入的命令,用普通的命令就行只是菜鸟的提问没有什么深意的

1.echo $PS1
2.PS1='Linux->'
3.PS1='\h'\$
4.PS1='\h \# '\$
5.PS1=:/\w
6修改用户根目录下的.bashrc

⑼ 操作系统实验为什么要在linux中进行而不在windos中进行编程

因为linux是开源软件,可以自由使用

而windows 是商业软件,有版权保护,不充允许进行实验研究

⑽ Unix/Solaris/Linux操作系统 上机实验 很简单的命令~ 求助

1.
ln name name.ln1
ln name name.ln2
肯定受影响!
2.
ls -l name*
rm name
没有!
3. cd /
ln -dfs /usr/bin bin.link
ls -l bin.link
ls -ld /usr/bin
ls -l /usr
cd home
find mode
ls -l mode
4. cd /
mkdir wj
cd wj
cp /home/mode ./mode.cp
ls -l mode.cp
5. chmod -c -w mode.cp
文件不可读
chmod -c -rw mode.cp
文件可读写,组用户可读写
8.
肯定不行,没权限!
9。有root权限就行
10。不行

没写的就依葫芦画瓢!

热点内容
安卓qq邀请码在哪里寻找 发布:2025-05-15 00:02:04 浏览:33
三菱fx编程口 发布:2025-05-15 00:01:23 浏览:809
医院招商引资宣传片脚本 发布:2025-05-15 00:01:21 浏览:367
linuxcftp服务器 发布:2025-05-14 23:58:18 浏览:717
探岳什么配置才有驾驶模式选择 发布:2025-05-14 23:53:17 浏览:144
如何在手机上看无限流量密码 发布:2025-05-14 23:43:31 浏览:114
19投篮脚本 发布:2025-05-14 23:36:57 浏览:513
编译器怎么处理c变长数组 发布:2025-05-14 23:31:46 浏览:663
存折每天可以输错多少次密码 发布:2025-05-14 23:22:06 浏览:909
安卓手机怎么找微信隐藏对话 发布:2025-05-14 23:07:47 浏览:338