CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] CPU스케쥴링(CPU Scheduling) - 1

0. CPU 스케쥴링을 공부하기 전, 스케쥴러에 대해서 알아보고 가겠습니다. 우리가 흔히 얘기하는 스케쥴러 는 short term scheduler을 의미합니다. 그럼 long term scheduler도 있을까요? 물론입니다. 예전에는 스케쥴러를 long term , short term 스케쥴러가 나눠져 있었습니다. 그럼 long term은 왜 사용하지 않고 short term 만 남았는지 한 번 알아보겠습니다. 스케쥴러는 Long-term Scheduler, Short-term Scheduler, Medium-term Scheduler, 3개로 나눌 수 있는데요, 먼저 Long-term scheduler 에 대해서 알아보겠습니다. Long-term scheduler 는 하드 디스크에서 메모리로 프로세..

2021.12.31 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 쓰레드(Thread)와 멀티 쓰레드 프로그래밍(Multi Thread Programming) 이란?

지난 시간에는 프로세스와 컨텍스트 스위치에 대해서 알아봤습니다. 다시한번 정리해보면 프로세스는 '실행 중인 프로그램' 이라고 할 수 있죠. 하나의 프로그램에서 여러 가지 일을 동시에 실행한다면 일 처리를 위해 부모 프로세스는 자식 프로세스를 계속 생성하고 없애고를 반복할텐데요, 생성하고 없애는 과정에서 자원의 공유와 비용이 문제가 생길 수 있습니다. 그렇다면 프로세스를 생성하지 않고 어떻게 자원 공유를 쉽게 효율적으로 할 수 있을까요? 여기서 바로 쓰레드가 나옵니다. 쓰레드, 멀티쓰레드 프로그래밍 이란? 쓰레드는 프로세스의 실행 단위입니다. 프로세스와 마찬가지로 CPU의 작업 단위 중 하나이지만 프로세스와는 다르게 굉장히 가볍습니다. 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하고, 같은 프로세스 내..

2021.12.22 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 프로세스와 컨텍스트 스위칭(Context Switching)이란?

이번 시간에는 운영체제, 그리고 개발자의 상식에서 빼놓을 수 없는 프로세스에 대해서 알아보려고 합니다. 사실 일상생활에서도 많이 쓰이는 단어이기도 하죠. 0. 그럼 프로세스(Process)란 뭘까요? 프로세스는 아주아주 간단하게 설명하자면 '현재 실행 중인 프로그램'입니다. 또한 운영체제에서 일의 단위라고도 할 수 있죠. 프로세스의 구성은 아래와 같습니다. 더 자세한 내용은 제가 최근에 프로세스 메모리 구조를 다루면서 작성한 글을 참고하시면 좋을 것 같습니다. [CS & Network/운영체제(OS) & 컴퓨터 구조] - 프로세스 메모리 구조 에서의 스택(Stack) 이란? 프로세스 메모리 구조 에서의 스택(Stack) 이란? 2021.12.04 - [자료구조 & 알고리즘/자료구조] - 자료구조에서의 스..

2021.12.15 게시됨

CS & Network/운영체제(OS) & 컴퓨터구조

프로세스 메모리 구조 에서의 스택(Stack) 이란?

2021.12.04 - [자료구조 & 알고리즘/자료구조] - 자료구조에서의 스택(Stack) 이란? 자료구조에서의 스택(Stack) 이란? 최근 친구와 카공을 하고 있었는데 친구가 갑자기 저에게 '야 스택이 뭐야?' 라는 질문을 던졌습니다. 애석하게도 바로 답변이 나오지 않더군요.. 결국 '쌓는거..?' 라는 대답을 해버렸습니다. 이 resilient-923.tistory.com 위의 이전 게시물에 이어 이번 시간에는 프로세스 메모리에서의 스택에 대해서 정리해보려고 합니다. 그러기 위해서는 프로세스 메모리 구조에 대해서 먼저 알아야겠죠? 먼저, 프로세스 메모리 구조는 Text(code), Data, Bss, Heap, Stack 영역으로 나눠져 있습니다. Code 영역 실행할 프로그램의 코드가 저장됩니다..

2021.12.05 게시됨