How did old computers handle an OS with several programs running at once with out inbuilt memory protection?

How did old computers handle an OS with several programs running at once with out inbuilt memory protection?

Terry has a word with you.

With blue screens

Crashes. Look at Windows 98 and prior for example.

memory protection already existed at metal level and user level before then

I'll take task scheduler for 1200 Alex

I don't know but your image makes spending time on this website look pathetic.

Depends how old but in a lot of cases you just had to trust the program was written well and wouldn't go fuck your shit up. Windows 3.1 didn't even have preemptive multitasking. This meant that when the OS handed the cpu over to a program it was up to the program to decide when the best time to give it back to the OS was. For poorly written programs this was sometimes never and a crash in that program froze the whole fucking thing and required a reboot. A lot of people take the ability to kill a process that has stopped responding for granted. I used Windows 3.1. I will never take it for granted.

how did OS developers fix that issue? multiprogramming?

>come to a website founded by weebs
>embarrassed by the anime posted here
Maybe you’d feel more at home back on reddit?

Not him but newfags are usually the ones who push clickbait animu shit in this forum.
Mostly because their threads are shit so they resort to a shitpost

newfags post niggers, people who understand how things work around here post anime

Remember when you could modify the resident memory of other programs without a segfault?

Newfags are the ones who call imageboards "forums"

you better go back

Programmers could actually program back then.
Now they are all wanking to JavaScript frameworks and Docker.

this

anime website

you have to go back

America was founded by smart enthusiasts, now it's full of retards who shout "muh freedom". Same here.

You really should go back to reddid buddy.
Trust me, it will be better for you.

By not waiting for the process to return control. There was a system call on the old stuff that said to the OS hey I'm ready to be paused so go ahead and take control back. Now the OS says okay do any processing you need to do and then comes back and takes it back. If the program doesn't have anything to do then it sleeps. A program that calls sleep doesn't get a timeslot until after. So if everything is idling except on process then all the time slots go to that process.

I'm not sure how you enforce a time slot at the assembly level. It's pretty widely used so I imagine if you needed to do it then you could research the best practices quickly.

...

interesting, how did people deal with fragmentation back then? virtual memory doesn't have fragmentation right

>forum

>smuguu~

why did win95 crash the system whenever you tried to kill a program via the ctrl+alt+del menu? I used an aftermarket process killer that was included as a free example in some forgotten c compiler on win95 and it never crashed.

>I'm not sure how you enforce a time slot at the assembly level.
In old processors with one core with hardware interrupts - the operating system regained control.

>not knowing what 'forum' means around here
Newfags weebs go
Shoo shoo

>ctrl+alt+del
is basically the power button on your case.
at least it used to be

Poorly.

-t. System 7.55

Fuck off my board

>be me
>pasta on my trans siberean hygge mitten knitting diarama
>get called new
>get shooed
you shoo!

Ring 0

the old VAC systems had memory protections of a different kind. Kernel memory was literally its own Hardware. User memory also had its own Hardware. With that kind of Separation you didn't have to worry about and user mode program writing into the kernel land.

Ghost yourself newfag.

>How did old computers handle an OS with several programs running at once with out inbuilt memory protection?
Memory protection hardware has been a thing since the early 60s. I think practically all multiprogramming systems from very early on had some notion of this. Multics and ITS certainly did. The details have changed and the systems have improved, but the basic notion is positively ancient.

With really old stuff the computers were single process so they just have to make sure not to overwrite the required system memory.
Then we had base + range pointers that set bounds to the process memory, i think those were already enforced by hw, and it already is a type of virtualization. When a program requested more memory OS could move program's stuff around to keep it compacted or reserve memory from somewhere else and give the cpu another base + range. Then pages and we're here, and no, pages still can be fragmented. Even more so because the virt mem to real mem is completely opaque to the process.

Get lost, grandpa. Nobody wants your degenerate non-letter runestone language around here anymore.

>I'm not sure how you enforce a time slot at the assembly level.
There is a system clock on the motherboard that interrupts the CPU - this is the same underlying mechanism that the network card uses to tell the CPU a packet has come in and to handle it *now* before its lost. When the CPU gets the interrupt it pushes onto the stack all the registers and program counter and all the internal state needed to resume running when the exception returns, then calls the interrupt handler provided by the OS. The OS snags all CPU state and saves it in internal data structure that holds all the thread state. The OS handler for the clock interrupt obviously updates the system clock, but also checks to see if the current thread has been running too long. If so then it figures out which new thread needs to run, and sets things up so that when it returns from the interrupt the CPU will land in the new thread. Thats more or less how it happens, anyway.

Lolno