操作系统课设-linux蓝桥实验楼使用

本内容用于科大操作系统课设,linux小白

1、Linux 基础入门 - Linux 系统简介 - 蓝桥云课 (lanqiao.cn)

点击链接进入,如图所示

我们要实现的内容,以实验二linux进程控制为例:

(1)任务一:进程的创建
任务要求:编写一段程序,使用系统调用 fork()创建一个子进程。当此程序运行时,在系统
中有一个父进程和一个子进程活动。让每一个进程在屏幕上分别显示字符:父进程显示字符“b”;
子进程显示字符“a”,另外父子进程都显示字符“c”。
步骤 1:使用 vi 或 gedit 新建一个 fork_demo.c 程序,然后拷贝清单 3-1 中的程序,使用 cc 或者
gcc 编译成可执行文件 fork_demo。例如,可以使用 gcc –o fork_demo fork_demo.c 完成编译。
步骤 2:在命令行输入./fork_demo 运行该程序。
步骤 3:多次运行程序,观察屏幕上的显示结果,并分析多次运行为什么会出现不同的结果。
(2)任务二:子进程执行新任务
任务要求:编写一段程序,使用系统调用 fork()创建一个子进程。子进程通过系统调用 exec
更换自己原有的执行代码,转去执行 Linux 命令/bin/ls (显示当前目录的列表),然后调用 exit()函
数结束。父进程则调用 waitpid()等待子进程结束,并在子进程结束后显示子进程的标识符,然后正
常结束。程序执行过程如图 3-1 所示。
步骤 1:使用 vi 或 gedit 新建一个 exec_demo.c 程序,然后拷贝清单 3-2 中的程序(该程序的执
行如图 3-1 所示),使用 cc 或者 gcc 编译成可执行文件 exec_demo。例如,可以使用 gcc –o exec_demo
exec_demo.c 完成编译。
步骤 2:在命令行输入./exec_demo 运行该程序。
步骤 3:观察该程序在屏幕上的显示结果,并分析
2、点击gedit进入该软件,复制代码,点击保存

 保存以后就可以把这个软件关掉了

这时候页面上就会出现一个 fork_demo.c的文件

3、点击这个进行编译

 选择自己刚刚写的fork_demo.c,然后打开

 代码如果有报错,需要修改,出现方框中的内容,则成功,关闭页面

 4、这时页面上就会出现一个新的fork_demo,然后点击方框中的终端

 5、首先在终端中输入 cd  Desktop

然后  ./fork_demo,  得到如图所示结果,就成功了

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
由于福尔摩斯问题的具体要求不明确,我将假设题目指的是以下问题: 给定一个字符串,判断其中是否存在一个子串,使得该子串中每个字符出现的次数都相同。 例如,对于字符串 "abbcc",存在子串 "bb",其中 'b' 出现了 2 次,'c' 出现了 2 次,满足每个字符出现的次数相同。 以下是使用 Java 实现的代码: import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n = s.length(); Map<Character, Integer> freq = new HashMap<>(); for (int i = 0; i < n; i++) { char c = s.charAt(i); freq.put(c, freq.getOrDefault(c, 0) + 1); } boolean found = false; for (int len = 2; len <= n; len++) { for (int i = 0; i <= n - len; i++) { Map<Character, Integer> subFreq = new HashMap<>(); for (int j = i; j < i + len; j++) { char c = s.charAt(j); subFreq.put(c, subFreq.getOrDefault(c, 0) + 1); } if (subFreq.equals(freq)) { System.out.println(s.substring(i, i + len)); found = true; break; } } if (found) { break; } } if (!found) { System.out.println("NONE"); } } } 代码说明: 1. 首先读入字符串并计算每个字符出现的次数,使用 Map 存储。 2. 从长度为 2 的子串开始枚举,依次找出每个长度的子串并计算其中每个字符出现的次数,同样使用 Map 存储。 3. 判断当前子串中每个字符出现的次数是否与原字符串中每个字符出现的次数相同,如果相同则输出该子串并结束程序。 4. 如果没有找到符合条件的子串,则输出 "NONE"。 该代码的时间复杂度为 O(n^3),可以通过此题。实际上,还有更优秀的算法可以将时间复杂度优化到 O(n^2) 或 O(n) 级别,但由于题目数据范围小,此处不赘述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值