操作系统实验一熟悉实验环境——Linux(含代码及实验心得)

实现工具:PC机

实现环境:Linux

实习内容(功能、目标):

实验要求:
1.熟悉linux操作系统的基本安装和配置;了解linux操作系统的启动过程和桌面环境;掌握VirtualBox虚拟机的使用
2.了解Linux的命令格式,掌握Linux中的操作命令;学会使用各种Shell命令操作Linux;学会如何得到帮助信息
3.熟悉Linux文件系统的文件和目录结构,掌握Linux文件系统的基本特征;掌握命令行方式下文件操作命令和程序中文件操作函数的使用方法;掌握Linux文件系统的加载和卸载方法
4.了解用vi编辑器编辑文本文件的基本使用方法;熟练运用vi编辑器进行快速文档编辑
实验目标:
(1)加深对进程概念的理解,明确进程和程序的区别。
(2)进一步认识并发执行的实质。
(3)分析进程争用资源的现象,学习解决进程互斥的方法。

实现的思想、方法和技术(含数据结构、算法):

设计思路:
1.Linux的安装和配置:
2.Linux基本环境与使用: 使用man命令获得ls、uname、date、cal、mkdir、cp等Linux命令,了解这些命令的具体使用方法
3.Linux文件处理 显示用户主目录下所有影藏文件的文件名,列出执行的命令及输出结果
4.vi编辑器的使用 用vi编辑器打开该文件,执行下述操作,并详细说明操作过程及方法
fork() 的用法:
(1)一个父进程希望复制自己,是父进程的子进程同时执行不同的代码段。这在网络服务进程中是最常见的——父进程等待客户端的服务请求。当这种请求到达时,父进程调用fork,使子进程处理此请求,父进程则继续等待下一个服务请求。 (2)一个进程要执行一个不同的程序。这对shell是最常见的情况。在这种情况下,子进程从fork返回后立即调用exec。

主要代码:

#include<stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
 
int main(){
        pid_t pid;
        pid=fork();
        if(pid<0)       /* 如果出错 */
                printf("error occurred!\n");
        else if(pid==0) /* 如果是子进程 */
                {
                        printf("我是子进程1,进程号是%d\n",getpid());
                        pid_t pid1;
                        pid1 = fork();
                        if(pid1==0){
                                printf("我是子进程1的子进程,进程号是%d\n",getpid());
                        }
                }
        else{
                printf("我是父进程,进程号是%d\n",getpid());
                pid=fork();
                if(pid==0)
                        printf("我是子进程2,进程号是%d\n",getpid());
                else{
                        pid=fork();
                if(pid==0)
                        printf("我是子进程3,进程号是%d\n",getpid());
                }
        }
        return 0;
}

注释:

1.使用fork()的进程是父进程,通过fork()建立的新进程是子进程。

2.fork()创建成功,返回值对子进程是0,对父进程是子进程的pid(一个正整数)。

3.在调用fork()后,父进程和子进程均从下一条语句开始执行。

4.getpid()返回调用进程的进程标识符,则输出子进程的k与父进程的i,j相等。

结果分析:

实验截图:

实验心得:

(1)加深对进程概念的理解,明确进程和程序的区别。

(2)进一步认识并发执行的实质。

(3)分析进程争用资源的现象,学习解决进程互斥的方法。

(4)复习课本关于进程控制和进程同步的内容,加深对进程管理概念的理解。

(5)认真阅读实验材料中进程管理部分,分析多个进程的运行情况。 

如果您感觉有用的话,请点赞评论分享收藏哦,非常感谢,好人一生平安!!!

祝大家天天开心,撒花撒花❀❀❀❀❀❀*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

猜你喜欢

转载自blog.csdn.net/m0_50962679/article/details/123600292