相关疑难解决方法(0)

进程和线程有什么区别?

进程和线程之间的技术差异是什么?

我感觉像'过程'这样的词被过度使用,还有硬件和软件线程.如Erlang这样的语言轻量级进程怎么样?是否有明确的理由使用一个术语而不是另一个术语?

multithreading process

1513
推荐指数
27
解决办法
111万
查看次数

什么是流程和线程?

是的,我读过许多与操作系统相关的资料.我还在读书.但似乎所有这些都是以"抽象"的方式描述过程和线程,这使得他们的行为和逻辑组织得到了很多高层次的阐述.我想知道他们身体上是什么?在我看来,它们只是一些内存中的"数据结构",它们由内核代码维护和使用,以便于程序的执行.例如,操作系统使用一些过程数据结构(PCB)来描述为某个程序分配的过程的各个方面,例如其优先级,地址空间等.这样可以吗?

c++ multithreading operating-system process

51
推荐指数
7
解决办法
2万
查看次数

堆管理

我知道有一个元数据存储辅助信息free(),realloc()当我们只提供指针时使用辅助信息.

我对堆很少有疑问.

  • 堆栈按进程分配.毫无疑问,但不确定堆.无论堆信息是否全局维护,否则每个进程都会有一些机制来保存有关该特定进程的已分配内存的信息.

  • 堆信息将如何维护?我猜哈希机制.我用Google搜索并尝试了SO.他们中的大多数人都将其解释为具体实施......就像那样.

linux heap operating-system

4
推荐指数
1
解决办法
4604
查看次数

使用线程时的内存管理

1)我尝试搜索当我们在程序中使用线程但是找不到答案时如何分配内存.这里堆栈和堆的内容和位置是什么?是调用单个程序时堆栈和堆的工作方式.但是当涉及到线程编程时会发生什么?

2)使用OpenMP并行区域创建线程,并行代码将在每个线程中并发执行.这是否在内存中分配的空间比顺序执行的相同代码占用的内存多?

heap stack multithreading memory-management openmp

4
推荐指数
1
解决办法
3544
查看次数

在父进程中使用fork()的结果

我有四个矩阵,我想用fork添加它们.我必须使用fork添加前两个矩阵,然后使用其他fork添加其他两个矩阵.然后我想添加上面两个矩阵的结果,以获得所需的输出.

我使用以下代码但没有在res矩阵中得到正确的答案,

#include<stdio.h>
#include<stdlib.h>

main()
{
    int a[2][2] = {1,2, 
                4,5};
    int b[2][2] = {1,2,
                3,4};
    int x[2][2] = {2,4, 
                3,6};
    int y[2][2] = {4,6,
                2,1};
    int c[2][2];
    int z[2][2];
    int res[2][2];

    int i,j;
    int pid,pid2;   //fork

    pid = fork();
    if(pid==-1)
    {
      printf("Can't fork\n");
    }

    if(pid==0)//child
    {
        for(i=0;i<2;i++)
        {
            for(j=0;j<2;j++)    
            {
                c[i][j] = a[i][j]+b[i][j];
                printf("cccc: %d\n", c[i][j]);
            }
        }
       exit(EXIT_SUCCESS);
    }   
    if(pid>0)//parent
    {
        wait(0);
    }

    pid2=fork();
    if(pid2==-1)
    {
      printf("Can't fork\n");
    }
    if(pid2==0)//child
    {
        for(i=0;i<2;i++)
        {
            for(j=0;j<2;j++)    
            {
                z[i][j] = x[i][j]+y[i][j]; …
Run Code Online (Sandbox Code Playgroud)

c operating-system fork matrix

0
推荐指数
1
解决办法
1099
查看次数