The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз операционной системы NetBSD 8.0, opennews (??), 21-Июл-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


19. "Релиз операционной системы NetBSD 8.0"  +5 +/
Сообщение от Аноним (19), 22-Июл-18, 09:22 
В отличие от линуксового «у нас ООМ, надо срочно у кого-нибудь отнять память, чтобы продолжить работать», BSD просто реагируют на ситуацию по POSIX-стандарту (а точнее по C), возвращая нулевой указатель и как вариант кидая системный сигнал, при этом обработка ООМ проще, потому что система заранее имеет свой объём личной памяти, который используется для работы и которым она делиться не будет; т.е. чтобы не было аппаратного ООМ, достаточно просто по старинке не отдавать всю память.
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

53. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от Аноним (4), 22-Июл-18, 20:55 
>как вариант кидая системный сигнал

Какой именно?

Ответить | Правка | Наверх | Cообщить модератору

57. "Релиз операционной системы NetBSD 8.0"  +1 +/
Сообщение от Аноним (57), 22-Июл-18, 21:46 
Так раньше было, сейчас в нетке для этого используется UVM.
http://netbsd.net/docs/kernel/uvm.html
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

64. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от пох (?), 22-Июл-18, 23:11 
> Так раньше было, сейчас в нетке для этого используется UVM.

там нет overcommit, в смысле линукса - то есть oom killer не нужен.
Но есть ньюанс, да - в результате sigsegv прилетает тогда, когда в линуксе программа спокойно бы отработала. Причем необязательно он прилетит самому прожорливому - он прилетит тому, кто сожрал "интеллигентский кусок". null же вернется только если попросить памяти заведомо больше, чем ее в принципе могло бы быть при полном отсутствии других процессов.


Ответить | Правка | Наверх | Cообщить модератору

75. "Релиз операционной системы NetBSD 8.0"  –3 +/
Сообщение от qwerty123 (??), 23-Июл-18, 12:18 
>Но есть ньюанс, да - в результате sigsegv прилетает тогда, когда в линуксе программа спокойно бы отработала.

Че? "спокойно бы отработала"? Мальчик, ты откуда?

Ты гарантируешь что финансовые данные при это будут достоверными, а менеджер баз данных не грохнется и не превратит данные о твоей зарплате в дерьмо?

Результат malloc(3) надо проверять. И вписывать обработку ситуации malloc() == 0
А то ужк выросли чудаки, которые не напрягают свой ценный мозг на наличие ресурсов в системе.

А по некоторым стандартам во встраиваемых системах malloc() вообше не используют. Ни явно, ни опосредовано. Ибо нехрен.

Ответить | Правка | Наверх | Cообщить модератору

77. "Релиз операционной системы NetBSD 8.0"  –2 +/
Сообщение от нах (?), 23-Июл-18, 13:56 
еще один "немальчик", не в теме совсем, но лезущий со своим ценным мнением?

> Результат malloc(3) надо проверять.

хоть обпроверяйся - там в современных системах (и, оказывается, даже netbsd - современная) - никогда не будет 0.
А памяти при этом может и не оказаться, вот сюрприз-то, да?

данные будут достоверными - пока будут вообще. А потом прилетит sigbus или sigsegv - в принципе, можешь даже попытаться их обработать, и корректно завершиться (других вариантов нет). Если твой "менеджер таз банных" при этом просто грохается - ну поздравляю, пора менять софт 80х годов.

Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз операционной системы NetBSD 8.0"  +1 +/
Сообщение от Аноним (78), 23-Июл-18, 15:15 
>> Результат malloc(3) надо проверять.
> хоть обпроверяйся - там в современных системах (и, оказывается, даже netbsd -
> современная) - никогда не будет 0.
> А памяти при этом может и не оказаться, вот сюрприз-то, да?

* * *
Эх любо, братцы анонимы, любо,
Любо, братцы, анонимом быть,
Пускать ветры прям в лужу,
О всяки пруфах не тужить!
* * *

# rctl -h
user:restricted:vmemoryuse:deny=1024M/process
user:restricted:memoryuse:deny=512M/process
user:restricted:swapuse:deny=1024M

% uname -rs;whoami && cat test.c && ./test|tail
FreeBSD 11.2-STABLE
restricted
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>

#define MB (1024*1024)
#define PSIZE 4096
int main(void){
    size_t sum = 0;
    char *ptr;
    for (size_t i=0;;i++) {
        if ((ptr = malloc(MB)) == NULL) {
            perror("Err:");
            exit(EXIT_FAILURE);
        }
        for (size_t j = 0;j < (MB-PSIZE-1); j += PSIZE) ptr[j] = 0;
        sum += MB;
        printf("allocated: %zu MB\n", sum/MB);
    }
    return EXIT_SUCCESS;
}Err:: Cannot allocate memory
allocated: 497 MB
allocated: 498 MB
allocated: 499 MB
allocated: 500 MB
allocated: 501 MB
allocated: 502 MB
allocated: 503 MB
allocated: 504 MB
allocated: 505 MB
allocated: 506 MB


Ответить | Правка | Наверх | Cообщить модератору

82. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от нах (?), 23-Июл-18, 17:35 
> О всяки пруфах не тужить!

и главное - нихрена не понимать, о чем был разговор.

тогда в качестве "пруфа" сойдет любой бред.

Ответить | Правка | Наверх | Cообщить модератору

84. "Релиз операционной системы NetBSD 8.0"  –1 +/
Сообщение от Аноним (78), 23-Июл-18, 17:52 
>> О всяки пруфах не тужить!
> и главное - нихрена не понимать, о чем был разговор.
> тогда в качестве "пруфа" сойдет любой бред.

Главное, пафосно заявить, что никто ничего ни#рена не понимает и вообще, все есть бред (и не забыть проставить плюсики с минусиками).

Звиняйте, но с тем же пафосом и апломбом кое-кто совсем недавно рассказывал о преимуществах null-terminated строк и об эффективности работы с ним современных (и не очень) процессоров.
https://www.opennet.ru/openforum/vsluhforumID3/114847.html#88
Так что в недопонимание сказанного вами по причине непризнанной гениальности вас - верится мало.
А вот в "особое видение художника" пополам с "не знал, а потом и забыл" – вполне.

Ответить | Правка | Наверх | Cообщить модератору

81. "Релиз операционной системы NetBSD 8.0"  –1 +/
Сообщение от qwerty123 (??), 23-Июл-18, 16:34 
>данные будут достоверными - пока будут вообще.

Бля... ладно, разжую.

#define A_SIZE 1024
uint *dst;

if ((dst = malloc(A_SIZE) > 0) {
  bcopy(src, dst, A_SIZE);
} else {
  /* handler */
}


Если malloc() всегда не ноль, но памяти так и не выделено, то где херакнется алгоритм?

Или как вызвать прерывание в хост систему из гостевой по случаю спекулятивного malloc(), "слушай, дорогой, ты меня поспи совсэм, пока память в натуре не появиться"?

И где у разработчика есть шанс построить более надежный алгоритм?

Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

83. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от нах (?), 23-Июл-18, 17:38 
> Бля... ладно, разжую.

зачем ты мне это разжевываешь? Разжевывай разработчикам всех операционных систем середины 90х, они ж тyпые, они ж не знали этой великой тайны.

> И где у разработчика есть шанс построить более надежный алгоритм?

там где он знает, как устроена система и подстелил соломки. man 2 signal ?

ну да, не очень красивый получается код, но, вообще-то, если честно - память в современных системах кончается совсем не потому, что ее забили с помощью bcopy ;-)
И чаше всего проблема даже вовсе не в том, что ее на самом деле не хватило.

Ответить | Правка | Наверх | Cообщить модератору

96. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от qwerty123 (??), 24-Июл-18, 20:21 
>зачем ты мне это разжевываешь?

что показать твою великую компетентность

>если честно

а если соврать как обычно?

>память в современных системах кончается совсем не потому, что ее забили с помощью bcopy

а как? магией?

# size  /bin/sh
    text   data    bss      dec       hex   filename
  153647   1748   9560   164955   0x2845b   /bin/sh

выясни что такое bss, data, heap, stack, как они используются
в вычислительной машине, в частно при вызове функций
и больше не ипи моск =)


Ответить | Правка | Наверх | Cообщить модератору

100. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от нах (?), 27-Июл-18, 13:03 
> что показать твою великую компетентность

пока что ты показываешь только свою великую некомпетентность.

>>память в современных системах кончается совсем не потому, что ее забили с помощью bcopy
> а как? магией?

да, малыш, для тебя это магия.

пока ты дpoчишь на свои "великие знания" на уровне устаревших на двадцать лет букварей, реальное устройство памяти в современных системах прошло мимо тебя.

Ответить | Правка | Наверх | Cообщить модератору

101. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от Michael Shigorinemail (ok), 01-Авг-18, 20:51 
> реальное устройство памяти в современных системах

А можно кратко или ссылку?  Я-то тоже ещё по Мюллеру да современникам читал, даже не по профессору.

Ответить | Правка | Наверх | Cообщить модератору

104. "Релиз операционной системы NetBSD 8.0"  +/
Сообщение от анон (?), 06-Сен-18, 10:03 
удали интернет себе
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру