Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Задачка Закачка: Bash


  • Subject: Re: lug-bg: Задачка Закачка: Bash
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Tue, 30 Nov 2004 12:33:05 +0200

On Tue, Nov 30, 2004 at 12:06:54PM +0200, Aleksandar Valchev wrote:
> Да, exec-а преебава простотията. Вместо exec сложих system(). Със system()
> май върви по-добре, накара ме да си рестартирам PC-то (като се има на
> предвид, че няма никакви limits).

Още по-добре ще върви с fork(), както няколко души ти казаха, макар че и
system() не е много зле - това, че изисква един допълнителен процес - самия
shell - може и да не е толкова лошо като за fork-бомбичка.

> Мисля си, че е по-добре да се ловят сигналите SIGKILL, 
> SIGSTOP (да не може да се спре изпулнението, чрез kill), но чрез системното 
> извикване signal(), не става. В ман page на signal() пише, че може да 
> игнорираш или да хванеш всички сигнал изключение на SIGKILL и SIGSTOP, като 
> същото се отнася и за sigaction (евала на Linux :) ). 

Не толкова Linux, колкото първоначалните дизайнери още на AT&T Unix, още в
Bell Labs.  Това, че НИКОЙ процес не може по НИКАКЪВ начин да спре SIGKILL и
SIGSTOP, си е основна парадигма във всички операционни системи, които
поддържат някакъв подобен механизъм за комуникация между процеси чрез
подаване на сигнали.  Не можеш, и това е - live with it :)

> Не мисля, че трябва нещо да пишеш в buffer-a за да зеeма памет. Би трябвало 
> malloc() да заделя памет и тя си остава заделена, без значение дали си 
> записал нещо в нея или не :). Якото е, че не се освобождава :).

Не е точно така.  Това много зависи 1. от реализацията на malloc() в libc
или в приложението (има някои програми, които използват собствени версии на
malloc()) и 2. от реализацията на system calls brk() и sbrk().  Ако искаш,
потърси из мрежата или из mailing lists информация за 'malloc overcommit'
или 'memory overcommit', за да видиш, че има много случаи и доста
операционни системи, които дават с malloc() и sbrk() доста повече памет,
отколкото системата наистина има, и я разпределят чак когато процесите
наистина поискат да пишат в нея - и да, Linux по принцип също прави така,
както вече беше казано в тази нишка :)

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
I am the thought you are now thinking.

Attachment: pgpJZtuy56puJ.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.