Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 8

Дочерние процессы

28.10.2011, 15:33. Показов 3162. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте! Подскажите пожалуйста, как заставить родительскую программу запускать по очереди два дочерних процесса?

Добавлено через 14 часов 17 минут
Буду рад любым примерам, думаю, по ним разберусь со своей задачей. Помогите, пожалуйста!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.10.2011, 15:33
Ответы с готовыми решениями:

Дочерние процессы (процессы-потомки)
Добрый день. Мне нужно создать 7 процессов-потомков и вывести pid родителя и pid ребёнка. Я несколько раз вызывала fork(), но оно мне...

Дочерние процессы
Как создать родительский и дочерний процесс скажем одномерного массива? int a; for(int i = 0; i < 10; i++) { a = i++; } ...

Родительские и дочерние процессы
Что-то никогда не думал, что буду спрашивать у кого-то, как делать лабы, сам справлялся(до этого без проблем писал самостоятельно...

6
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
28.10.2011, 15:40
Magnus, читайте о функции 4bh int 21h.
0
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 8
28.10.2011, 23:04  [ТС]
Ну вот мне нужно написать родительскую и 2 дочерних программы, причём чтобы первая программа делала попытку открыть текстовый файл FILE.txt, а вторая дочерняя программа открывалась сразу после того, как отработает первая. Ко второй тоже есть задание, но с этим я разберусь - прошу помочь мне понять, как запустить 2 процесса подряд. Вот, что у меня получилось
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
       ;Родительская программа  MA.ASM
 
     _code segment 'CODE'
              assume cs:_code, ds:_data, ss:_stack
        main proc
              mov ax,_data
              mov ds,ax
                  mov ah,40h
                  mov bx,1          ; Вывод первого
                  mov cx,len1        ;сообщения
                  mov dx,offset mes1
                  int 21h
        mov ax,zzz
        mov dx,es                    ;Освобождение
        sub ax,dx                    ;лишней памяти
        mov bx,ax
        mov ah,4ah
        int 21h
                mov ax,_data
                mov es,ax
                mov ah,4bh             ;Попытка запуска
                mov al,0               ;дочернего процесса
                mov bx,offset parmblk
                mov dx,offset chname
                int 21h
                jc errexec
        mov ah,4dh
        int 21h                 ;Получение и анализ
        cmp al,1                ;кода возврата
        je errchild
 
           mov ah,40h
           mov bx,1              ;Вывод второго
           mov cx,len2           ; сообщения
           mov dx,offset mes2
           int 21h
 
  outprog:
             mov ax,4c00h         ;Завершение
             int 21h              ;программы
 
 errchild:
           mov ah,40h
           mov bx,1               ;Вывод третьего
           mov cx,len3            ;сообщения
           mov dx,offset mes3
           int 21h
           jmp outprog
 
  errexec:
          mov ah,40h
          mov bx,1                ;Вывод четвертого
          mov cx,len4             ;сообщения
          mov dx,offset mes4
          int 21h
          jmp outprog
     main endp
     _code ends
 
            ;Сегмент данных
        _data segment 'DATA'
        parm     dw  7 dup(0)
        comand   db "c:\command.com",0
 
        parmblk   dw   7 dup(0)
        chname      db  "DO.EXE",0    ;Имя дочерней программы
        mes1      db "Родительский процесс запущен",10,13
        len1      equ $-mes1
        mes2      db  "Дочерний процесс отработал",10,13
        len2      equ  $-mes2
        mes3      db  "Дочерний процесс завершился с ошибкой",10,13
        len3      equ  $-mes3
        mes4      db  "Дочерний процесс не активизирован",10,13
        len4      equ  $-mes4
        _data ends
 
             ;Сегмент стека
        _stack segment stack 'STACK'
               db   100 dup(0)
        _stack ends
     zzz  segment
             zzz ends
    end main
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
       ;Дочерняя программа do.asm
 
          assume cs:_code, ds:_data, ss:_stack
       _code segment 'code'
    main  proc
                 mov ax,_data
                 mov ds,ax
             mov ah,40h            ;Вывод первого
             mov bx,1               ;сообщения
             mov cx,len1
             mov dx,offset mes1
             int 21h
 
        mov ah,3dh                ;Открытие файла
        mov al,0                  ;для чтения
        mov dx,offset fname
        int 21h
        jnc ok
        mov errcode,1
                mov ah,40h
                mov bx,1              ;Вывод второго
                mov cx,len2           ;сообщения
                mov dx,offset mes2
                int 21h
                jmp finend
   ok:
        mov errcode,0
        mov ah,40h                 ;Вывод третьего
        mov bx,1                   ;сообщения
        mov cx,len3
        mov dx,offset mes3
        int 21h
 finend:
          mov ah,4ch              ;Функция завершения
          mov al,errcode          ;Код возврата
          int 21h
    main endp
      _code ends
 
                    ;Сегмент данных
      _data segment 'data'
            mes1  db 'Дочерний процесс запущен',10,13
            len1 equ  $-mes1
            mes2  db 'Фаил не открылся !',10,13
            len2  equ $-mes2
            mes3  db  'Фаил открылся',10,13
            len3  equ  $-mes3
            fname  db  'FILE.txt',0
            errcode  db  0
       _data ends
 
                    ;Сегмент стека
       _stack segment stack  'Stack'
              dw  100 dup(?)
       _stack ends
    end main
0
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
28.10.2011, 23:54
Magnus, вот код, запускает сначала 5.com, затем 4.com .
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
.model tiny
.code
.286
org 100h
start:
 
mov bx,(_sp-start+100h)/16
inc bx
mov ah,4ah
int 21h
 
pusha
push es
push ds
mov _ss,ss
mov _sp,sp
 
 
mov word ptr [epb+4],cs
mov word ptr [epb+2],offset cmd
 
mov ax,4b00h
mov dx,offset nfile
mov bx,offset epb
int 21h
 
dec epb+2
dec nfile
mov ax,4b00h
mov dx,offset nfile
mov bx,offset epb
int 21h
 
mov ss,_ss
mov sp,_sp
 
pop ds
pop es
popa
 
ret
 
nfile db '5.com',0
epb dw 7 dup (0)
cmd db 6,'5.com',0dh
_ss dw ?
_sp dw ?
 
end start
0
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 8
29.10.2011, 00:09  [ТС]
Спасибо, что откликнулся. Но дело в том, что мне нужно дополнить именно ту родительскую программу, которую я написал выше, чтобы она открывала 2 дочерних процесса подряд.
0
 Аватар для Vadimych
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
29.10.2011, 00:10
Ну так по аналогии.
0
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 8
29.10.2011, 00:22  [ТС]
Vadimych, я пытаюсь. Не совсем получается, но попробую. Ладно, спасибо за участие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2011, 00:22
Помогаю со студенческими работами здесь

Родительские и дочерние процессы
Здравствуйте, форумчане, рад буду любой помощи и полезной информации по ниже приведенному заданию, буду весьма благодарен за любую помощь...

[C] Породить дочерние процессы
Нужно что-бы отцовский процесс породил трех сыновей, а каждый сын печатает свой пид и пид двух других сыновей

FIFO и дочерние процессы
День добрый, пишу курсач вот задание: вот что я навоял: #include <stdio.h> #include <stdlib.h> #include...

Потоки ввода/вывода, дочерние процессы и FIFO
Доброго времени суток! пишу курсовую, через неделю нужно здать, поэтому прошу помощи, знаю что эта тема уже раннее обсуждалась, но до...

Принудительно закрыть дочерние процессы при выходе из программы
Добрый день! Во время работы программы инициируются новые Threads. Однако, пользователь может не дождаться завершения этих потоков, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru