프로세스 vs 스레드 Q. 프로세스는 무엇인가요? A. 프로세스는 OS 입장에서 실행중인 작업의 단위입니다. 모든 프로세스는 독립적인 메모리 공간을 가지며, 최소 한 개의 메인스레드를 포함합니다. Q. 스레드는 무엇인가요? A. 하나의 프로세스 내에서 하나 이상으로 쪼개지는 작업의 단위입니다. Q. 프로세스와 스레드의 차이에 대해 설명해주실래요? A. 프로세스는 각 프로세스마다 독립적인 메모리 공간을 가지고 있기 때문에 프로세스 간 자원공유가 어렵습니다. 하지만 스레드는 프로세스 내에서 stack외에 메모리 공간을 공유하기 때문에 자원공유가 쉽습니다. 또한, 프로세스는 현재 실행중인 프로세스를 교체할 때 상대적으로 높은 context switching 비용이 발생합니다 Q. 멀티프로세싱과 멀티스레딩에 대..
프로세스
프로세스 운영체제로부터 자원을 할당받은 작업의 단위 메모리에 올라와 실행되고 있는 프로그램의 인스턴스 프로세스는 각각 독립된 메모리 영역을 할당받음 (code, data, stack, heap) 프로세스는 최소 1개의 스레드(main)를 가지고 있음 프로세스 주소 공간 Code : 프로그래머가 작성한 프로그램 함수들의 코드가 cpu가 해석 가능한 기계어 형태로 저장되어 있음 Data : 코드가 실행되면서 사용하는 전역 변수나 각종 데이터들 Stack : 지역 변수와 같은 호출한 함수가 종료되면 되돌아올 임시적인 자료를 저장하는 독립적인 공간. stack은 함수의 호출과 생성되며 함수의 호출이 완료되면 소멸함 Heap : 동적으로 할당되는 데이터들을 위한 공간. 사용자에 의해 메모리 공간이 동적으로 할당되..

운영체제 제한된 컴퓨터 하드웨어 자원을 효율적으로 관리하여 사용자나 응용 프로그램에게 컴퓨터 자원의 인터페이스를 제공하는 시스템 소프트웨어, 컴퓨터 자원을 제어하고 사용정책을 구현하여 사용자에게 스케쥴링을 통해 자원 할당 추상화 가상화 관리화 운영체제의 주요 기능 1. 프로세스 관리 사용자 프로세스와 시스템 프로세스의 생성과 폐기 프로세스의 중지와 재수행 프로세스 통신과 동기화를 위한 기법 제공 교착상태 방지를 위한 기법 제공 2. 주기억장치 관리 기억장치를 사용하고 있는 공간과 사용자를 추적 관리 기억공간을 점유할 프로세스 결정 기억공간을 할당하고 회수 3. 파일 관리 파일의 생성과 폐기 디렉토리 생성 및 폐기 파일과 디렉토리 관리를 위한 프리미티브 제공 보조 기억장치에 있는 파일을 운영체제가 이용할 ..