Giter VIP home page Giter VIP logo

nuaa-osexam's Introduction

oslab-exam

学长友情提示:做人不能太嚣张,拿着这份代码直接交考试太过分了。

题目1

  1. 主进程创建1个子进程
  2. 主进程通过管道与子进程连接
    • 子进程的标准输出连接到管道的写端
    • 主进程的标准输入连接到管道的读端
  3. 在子进程中调用exec(“echo”, “echo”, “hello world”, NULL)
  4. 在父进程中调用read(0, buf, sizeof(buf)),从标准输入中获取子进程发送的字符串,并打印出来

题目2

  1. 主进程创建2个子进程,主进程通过两个管道分别与两个子进程连接
  2. 第一个子进程计算从1加到50的和,并将结果通过管道送给父进程
  3. 第一个子进程计算从50加到100的和,并将结果通过管道送给父进程
  4. 父进程读取两个子进程的结果,将他们相加,打印出来,结果为5050

题目3

1.主线程创建10个子线程 - 第0个子线程计算从01加到10的和 - 第1个子线程计算从11加到20的和 - 第2个子线程计算从21加到30的和 - ... - 第9个子线程计算从91加到100的和 2. 主线程归并10个子线程的计算结果,最终结果为5050 3. 本题必须使用线程参数来完成

题目4

  1. 主线程创建4个子线程T1、T2、T3、T4,主线程在4个子线程退出后,才退出
  2. 线程T1、T2、T3、T4的运行时代码如下:
#include <unistd.h> // sleep函数声明在该头文件中

void *T1_entry(void *arg)
{
    sleep(2);  // 睡眠2秒,不准删除此条语句,否则答题无效
    puts(“T1”);
}

void *T2_entry(void *arg)
{
    sleep(1);  // 睡眠1秒,不准删除此条语句,否则答题无效
    puts(“T2”);
}

void *T3_entry(void *arg)
{
    sleep(1);  // 睡眠1秒,不准删除此条语句,否则答题无效
    puts(“T3”);
}

void *T4_entry(void *arg)
{
    puts(“T4”);
}
  1. 使用信号量或者条件变量机制(而不是使用sleep函数),使得这四个线程满足如下制约关系:
    • T1的print语句执行后,T2和T3才可以执行print语句
    • T2和T3的print语句执行后,T4才可以执行print语句
  2. 程序输出结果为
T1
T2
T3
T4

或者

T1
T3
T2
T4

nuaa-osexam's People

Contributors

summershrimp avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.