CS/운영체제

    [CS - 운영체제] 스레드와 멀티 스레드 (Feat. 멀티 프로세스 vs 멀티 스레드)

    스레드 (Thread) 개념 한 프로세스에서 실행되는 동작(기능 function)의 단위 하나의 프로세스 내부에 스레드가 한 개일 수도, 여러 개일 수도 있음. 이때 여러 개인 경우를 멀티 스레드(Multi Thread) 예) 유튜브라는 하나의 프로세스를 진행할 때 동영상 렌더링(스레드1), 댓글 조회(스레드2), 추천 동영상 탐색(스레드3) 등 각 스레드는 프로세스에 할당된 메모리 영역 중 코드, 데이터, 힙 영역을 공유 각 스레드는 스택 메모리 영역을 독립적으로 사용 독립적인 스택 메모리 필요 스레드는 하나의 실행 단위 → 함수를 호출함 함수를 호출하기 위해 인자 전달, return address 저장, 함수 내 지역 변수 저장 등을 위한 독립적인, 개별적인 공간 필요 독립적인 공간이 필요하다는 건 ..

    [CS - 운영체제] 프로세스와 멀티 프로세스 (Process, Multi Process)

    프로세스 (Process) 개념 일종의 명령어 리스트 또는 실행 파일인 프로그램이 하드 디스크에서 메모리로 적재되어, CPU에게 할당받아 실행(연산)되는 프로그램 흐름 우리가 코딩을 해서 프로그램을 작성 컴파일 하드디스크(HDD)에 프로그램 저장 RAM 메모리에 적재 CPU가 직접 접근해서 CPU에 할당 CPU가 프로그램을 한줄 한줄 읽으며 처리함 명령어 처리가 진행되면 프로그램은 프로세스가 되었음 메모리 메모리 : CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치. 우리가 말하는 메모리는 RAM 메모리를 의미한다. 메모리에는 4가지 영역이 존재한다. 코드 : 프로그램의 코드를 저장하는 메모리 영역 데이터 : 프로그램의 전역 변수, static 변수를 저장하는 메모리 영역 힙 : 프로그래머가 직접 공..

    [CS - 운영체제] 메모리 (Memory)

    페이징 (Paging) 사전 개념 논리적 주소 (Logical Address) 각 프로세스가 메모리에 적재되기 위한 독자적인 주소 공간인 논리적 주소 할당 프로세스마다 독립적으로 할당되며 0번지부터 시작 물리적 주소 (Physical Address) 프로세스가 실제 메모리에 적재되는 위치 주소 바인딩 (Address Binding) 프로세스의 논리적 주소가 실제로 어떤 물리적 주소에 있는지 (매핑되어 있는지) 확인하는 과정 페이징 (Paging) 개념 프로세스의 메모리와 물리적 메모리를 일정한 크기, 즉 page 단위로 미리 나누어, 물리적 메모리의 서로 다른 위치에 page 단위로 저장하는 메모리 관리 기법 미리 분할해두면 메모리 할당이 빠르기 때문! 모든 프로세스는 각각의 논리적 주소의 page가 물..