Перейти к содержимому


Фотография

Операционная система LunaOS

Операционная система OS ОС LunaOS Многопоточность

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 54

#31 Оффлайн   Zer0Galaxy

Zer0Galaxy

    The Lord of the Pings

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 158 сообщений

Награды

4                                 

Отправлено 25 Август 2016 - 16:51

NightFury, никого не слушай, пиши свою ось. Выложишь когда что-то получится. Будут трудности, обращайся.


  • Totoro, unknown, Fingercomp и 5 другим это нравится

#32 Оффлайн   Totoro

Totoro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 481 сообщений

Награды

                                      

Отправлено 26 Август 2016 - 13:55

Задумка хорошая, мне нравится.

Главное чтобы хватило энтузиазма довести дело до конца. :D

 

В принципе вполне возможно писать программы под ОС и без операционной системы.

Но если будет удобная обертка над этим всем, которая предоставит какие-то крутые интерфейсы, это будет как минимум интересно.



#33 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 26 Август 2016 - 22:23

Задумка хорошая, мне нравится.
Главное чтобы хватило энтузиазма довести дело до конца. :D
 
В принципе вполне возможно писать программы под ОС и без операционной системы.
Но если будет удобная обертка над этим всем, которая предоставит какие-то крутые интерфейсы, это будет как минимум интересно.


Как раз над этим я и работаю. :)
Ядро уже почти готово. Шлифую недостатки. Думаю к завтра ядро уже будет.

#34 Оффлайн   Totoro

Totoro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 481 сообщений

Награды

                                      

Отправлено 03 Сентябрь 2016 - 00:20

Как раз над этим я и работаю. :)
Ядро уже почти готово. Шлифую недостатки. Думаю к завтра ядро уже будет.

 

Как продвигаются дела?

Где можно пощупать ядро?



#35 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 04 Сентябрь 2016 - 13:42

философия схожа с той осью что я с другом пишу, но пока что только стадия ядра (с сигналами боль)

 

Я вот сигналы победил.

Все еще пишу.

Мне информацию про диплом дали. С ним еще вопрос решаю.



#36 Оффлайн   Syabro

Syabro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 286 сообщений

Отправлено 28 Сентябрь 2016 - 16:03

А что будет с Event'ами в coroutine? Как они будут работать?



#37 Онлайн   Fingercomp

Fingercomp

    Видимый невидимый

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 891 сообщений

Награды

                                               

Отправлено 29 Сентябрь 2016 - 10:19

Я так понял, ничего уже работать не будет.



#38 Оффлайн   ALeXeR

ALeXeR

    Местный

  • Пользователи
  • PipPipPipPipPip
  • 183 сообщений
  • ГородОдесса

Отправлено 29 Сентябрь 2016 - 10:20

Евентов как таковых нет в самом ОС, они предоставляются ОпенОС, а для этой систему реализация обработки событий на плечах NightFury, я лично решил проблему по своему, так что будем ждать решения NightFury)



#39 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 02 Октябрь 2016 - 12:05

Я так понял, ничего уже работать не будет.

 

Почему ты так уверен?


Евентов как таковых нет в самом ОС, они предоставляются ОпенОС, а для этой систему реализация обработки событий на плечах NightFury, я лично решил проблему по своему, так что будем ждать решения NightFury)

 

Я тоже очень жду того момента, когда смогу закодить идею, а не держать ее в долабанном блокноте.


А что будет с Event'ами в coroutine? Как они будут работать?

 

Как и прерывания в реальных компьютерах. В общем там система сложнее. В реальных компах это называется - планировщик.


  • SergOmarov это нравится

#40 Оффлайн   LeshaInc

LeshaInc

    Rust Evangelism Strike Force

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 180 сообщений
  • ГородЛуна

Награды

                 

Отправлено 02 Октябрь 2016 - 14:06

Евентов как таковых нет в самом ОС, они предоставляются ОпенОС, а для этой систему реализация обработки событий на плечах NightFury, я лично решил проблему по своему, так что будем ждать решения NightFury)

?
сам ос предоставляет евенты

#41 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 02 Октябрь 2016 - 14:25

?
сам ос предоставляет евенты

 

Ох. Не заметил. Да. Мод сам предоставляет ивенты, которые называются сигналами и складирует их в стек LIFO.

А операционная система уже с ними работает и выдает их за события.

На деле при возникновении они просто хранятся в стеке и все. А модуль event лишь обрабатывает стек и вызывает соответствующие callback'и.



#42 Оффлайн   SergOmarov

SergOmarov

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 564 сообщений

Награды

     

Отправлено 02 Октябрь 2016 - 14:29

"LIFO"

А на русскоязычной вики написано FIFO. Что-то поменялось или это просто опечатка?



#43 Оффлайн   ALeXeR

ALeXeR

    Местный

  • Пользователи
  • PipPipPipPipPip
  • 183 сообщений
  • ГородОдесса

Отправлено 02 Октябрь 2016 - 14:50

говоря что их нет, я это и имел в виду, ивентов как таковых нет, есть сигналы)



#44 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 02 Октябрь 2016 - 14:54

"LIFO"

А на русскоязычной вики написано FIFO. Что-то поменялось или это просто опечатка?

 

Не опечатка, а перепутал FIFO с LIFO.


Сообщение отредактировал NightFury: 02 Октябрь 2016 - 15:00


#45 Оффлайн   NEO

NEO

    Орден К.А.

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 588 сообщений
  • ГородСолнце

Награды

   2                        

Отправлено 02 Октябрь 2016 - 15:13

FIRST IN, FIRST OUT


  • SergOmarov это нравится

#46 Оффлайн   Totoro

Totoro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 481 сообщений

Награды

                                      

Отправлено 02 Октябрь 2016 - 16:00

FIRST IN, FIRST OUT

 

Спасибо, Кэп!


  • Fingercomp, newbie и Saintmare это нравится

#47 Оффлайн   davial

davial

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 437 сообщений
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 03 Октябрь 2016 - 11:36

FIRST IN, FIRST OUT

Стек - он такой. :D



#48 Оффлайн   Seryoga

Seryoga

    Пользователь

  • Пользователи
  • PipPipPip
  • 95 сообщений
  • ГородSaint-Petersburg

Награды

     

Отправлено 04 Октябрь 2016 - 10:34

Стек - он такой. :D

FIFO -> очередь
LIFO -> стек


  • NightFury это нравится

#49 Оффлайн   davial

davial

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 437 сообщений
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 04 Октябрь 2016 - 12:13

FIFO -> очередь
LIFO -> стек

ЧЁРТ! Точно. :facepalm:  Перепутал с : последний вошёл - первый вышел(last in, first out) :smile44:



#50 Оффлайн   FedorGamer

FedorGamer

    Почетный гость

  • Пользователи
  • 4 сообщений

Отправлено 09 Октябрь 2016 - 21:47

Ну вот и пользуйся этим. Если ты думаешь, что я это не смогу создать на OpenOS - ошибаешься.

Если все присутствующие еще не поняли. Я создаю операционку, а не программы под нее.
И то, что вы эти программы уже сделали в OpenOS, я за вас рад.

 

Если хочешь удаленное редактирование файлов, то делай аналог SMB. Да и по моему SMB гораздо удобнее FTP, ИМХО. 



#51 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 10 Октябрь 2016 - 23:36

Если хочешь удаленное редактирование файлов, то делай аналог SMB. Да и по моему SMB гораздо удобнее FTP, ИМХО. 

 

Мне нужно в начале закончить дописывать API и основные системные программы, а потом уже думать системы подключения. Кроме того API будет построено так, что каждый сам сможет написать свой FTP клиент и сервер.



#52 Оффлайн   FedorGamer

FedorGamer

    Почетный гость

  • Пользователи
  • 4 сообщений

Отправлено 11 Октябрь 2016 - 17:55

Мне нужно в начале закончить дописывать API и основные системные программы, а потом уже думать системы подключения. Кроме того API будет построено так, что каждый сам сможет написать свой FTP клиент и сервер.

 

 

И это хорошо! Вот как закончишь ось , тогда я писать свой X-сервер с блэкджеком и сам понимаешь чем x)
(Если ты конечно не сделаешь его сам, а то кто знает, может ты только аналог bash в качестве оболочки оставишь xP)



#53 Оффлайн   NightFury

NightFury

    Читатель

  • Автор темы
  • Пользователи
  • PipPip
  • 38 сообщений
  • ГородSaint-Petersburg

Отправлено 11 Октябрь 2016 - 22:54

И это хорошо! Вот как закончишь ось , тогда я писать свой X-сервер с блэкджеком и сам понимаешь чем x)
(Если ты конечно не сделаешь его сам, а то кто знает, может ты только аналог bash в качестве оболочки оставишь xP)

 

Я предоставлю API с большим набором возможностей и распишу, как ими пользоваться правильно.



#54 Оффлайн   Totoro

Totoro

    Свой человек

  • Пользователи
  • PipPipPipPipPipPipPip
  • 1 481 сообщений

Награды

                                      

Отправлено 13 Март 2017 - 23:42

Подзаглох проект что-то.  :)

Он будет ещё воскрешаться, или уже R.I.P.?


  • Syabro, Saintmare и albus это нравится

#55 Оффлайн   TC1061

TC1061

    Интересующийся

  • Пользователи
  • Pip
  • 24 сообщений

Отправлено 07 Август 2017 - 18:49

Если цикл бесконечный, то он в любом случае, даже если программа работает в однозадачном режиме, должен содержать os.sleep, event.pull или другую функцию, ожидающую событие. В противном случае компьютер отключится. Именно ожидание события и есть переключение между задачами. У меня, по крайней мере так.

А что, если пройтись по синтаксису каждой программы, и поставить везде вызов такой функции?

function nanoyield(...)
  coroutine.yield("no-event")
  return ...
end

Таким образом, код

while true do
  var = io.open("file","r")
  s = var:read("*a")
  var:close()
end 

превратится в

while nanoyield(true) do nanoyield()
  var = nanoyield("file","r")
  s = var:read("*a")
  nanoyield(var:close())
end
   

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

А хост-программа будет обрабатывать "no-event" как пропуск передачи события в код потока. У каждого потока будет стек событий. Если все потоки вернули "no-event", то события и вовсе не будут проверяться, пока не пройдет таймер, и не придется взять событие, дабы избежать ошибок в системе.

Вот это был бы шедевр...







Темы с аналогичным тегами Операционная система, OS, ОС, LunaOS, Многопоточность

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


E-mail администратора: help@computercraft.ru
Яндекс.Метрика