목록Computer Science/운영체제 (7)
꾸준하게 거북이처럼
절대 주소 지정과 상대주소 지정의 차이점은 뭘까요?절대 주소는 물리메모리 주소, 상대주소는 논리메모리 주소를 의미합니다.논리적인 주소란프로세스마다 독립적으로 가지는 공간 (=각 프로세스마다 0번지부터 시작하는 공간)CPU가 보는 주소물리적 주소란프로세스가 실행되면 실제 메모리에 올라가는 위치컴퓨터가 부팅되면 낮은 주소 영역(0번지 부터)에 커널이 상주하고, 나머지 주소영역을 프로세스가 나눠서 사용메모리 분할에 대해 설명해주세요.하나의 컴퓨터에서 여러 프로그램이 동시에 실행되기 위해, 공유 자원인 ‘메모리’를 여러 프로세스가 나누어 사용해야 합니다.이를 위해 각각의 프로세스에게 해당 프로세스의 작업 공간인 메모리를 할당해주는 것을 말합니다.메모리 배치 기법(메모리 관리 전략)에 대해 설명해주세요.연속 할당..
병행성(동시성)에대해 설명해주세요.Task들이 빠르게 전환하면서 실행되어 동시에 실행되는 것처럼 보이는 것병렬성에 대해 설명해주세요.실제로 동시에 여러 작업이 처리되는 것프로세스 동기화에 대해 설명해 주세요.여러 프로세스 사이에서 공유 자원의 일관성을 보장하는 것을 의미합니다.Critical Section에 대해 설명해주세요.Critical Section은 여러 프로세스가 동시에 사용할 수 없는 공유자원에 접근하는 프로그램 코드의 일부분Race Condition이 무엇인가요?공유 자원에 대해 여러 프로세스가 동시에 접근하는 상황을 말합니다.Race Condition을 어떻게 해결할 수 있나요?상호배제 방법이 있습니다. 어떤 프로세스가 임계 영역 부분을 수행 중이라면, 다른 프로세스는 접근하지 못하도록 하..
기아 상태가 무엇인가요?프로세스가 원하는 자원을 계속 할당 받지 못하는 상태를 기아상태라고 말합니다.기아 상태를 어떻게 해결할 수 있나요?공정한 자원 할당을 위해 시간 제한 및 우선순위 부여와 같은 방법을 사용하여 모든 프로세스가 적절한 기회를 가지도록 해야 합니다.조금더 자세한 예시를 들자면,우선순위 스케줄링 (Priority Scheduling)각 프로세스나 스레드에 우선순위를 할당하여, 자원에 대한 접근 권한을 우선순위에 따라 부여하는 방법시간 제한 (Timeouts)일정 시간이 지나면 자원을 기다리는 프로세스나 스레드한테 자원을 할당해주는 방법CPU 스케줄링에 대해 설명해주세요.CPU 스케줄링은 다중 프로세스 또는 다중 스레드 환경에서 CPU 자원을 효율적으로 할당하는 방법을 결정하는 작업을 말..
쓰레드에 대해 설명해주세요.프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위입니다.+) 프로세스와 차이: 프로세스는 운영체제로부터 자원을 할당받은 작업의 단위임. 비유로 들자면, 크롬 브라우저 실행 시 프로세스 하나 생성 -> 우리는 파일을 다운 받으며, 온라인 쇼핑, 게임을 할 수 있다.하나의 프로세스 내에서 여러가지 작업들 흐름이 동시에 진행되며, 이런 흐름을 스레드라고 함.쓰레드의 메모리 공간에 대해 설명해주세요.프로세스의 4가지 메모리 영역인 (code, data, heap, stack) 중 각 스레드는 stack만 할당받아서 복사하고, code, data,heap은 프로세스 내의 다른 스레드들과 공유됩니다. 따라서 각각의 스레드는 별도의 스택을 가지고 있지만 이외는 공유하기 때문에 서로 다른..
프로그램에 대해 설명해주세요.컴퓨터에서 어떤 작업을 위해 실행할 수 있는 정적인 상태의 실행 파일 형태로, 파일 시스템에 저장 되어 있습니다.프로세스에 대해 설명해주세요.운영체제가 메모리 등 필요한 자원을 할당해준 실행 중인 프로그램을 말합니다.프로세스 문맥에 대해 설명해주세요.특정 시점을 놓고 봤을 때, 이 프로세스가 어디까지 실행했고 저장했으며 새로운 프로세스를 실행시키기 위해 필요한 정보를 말합니다. 프로세스의 현재 상태를 나타내는데 필요한 모든 요소를 말합니다.크게 3가지로 구분됩니다.cpu 수행상태를 나타내는 하드웨어 문맥인 program counter, 각종 Register프로세스의 주소공간인 code,data,stack, heap등 각 영역의 위치 등 메모리와 관련된 정보를 알기 위한 문맥입..
커널모드에 대해 설명해주세요.운영체제의 핵심 부분인 커널이 실행되는 모드로, 운영체제의 핵심 기능인 프로세스 관리, 파일 시스템과 메모리 관리 등을 수행할 수 있고 모든 자원에 접근과 명령을 할 수 있습니다.유저모드에 대해 설명해주세요.어플리케이션과 같은 사용자 프로그램이 실행되는 모드로, 커널모드와 달리 HW 자원에 직접 접근할 수 없으며, 제한적인 명령만을 수행할 수 있습니다.폴링에 대해 설명해주세요.CPU가 io장치로부터 이벤트가 없는지 수시로 체크하는 것을 말합니다.+) 매번 체크는 비효율적이기 때문에, 장치에서 이벤트 발생시, 이벤트를 통지해주는 인터럽트가 사용됨.인터럽트에 대해 설명해주세요.프로그램이 실행하는 동안 IO장치의 사용이나 예외가 발생하면 이를 CPU에게 알려서 처리하도록 하는 것을..
운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨와와 하드웨어를 연결하는 소프트웨어입니다.사용자가 컴퓨터의 자세한 하드웨어적인 것을 몰라도 편하게 사용할 수 있게 해주는 역할을 해주며, 그러기 위해 메모리, CPU등의 자원 관리를 해줍니다.시분할 시스템에 대해서 설명해주세요.여러 유저가 동시에 컴퓨터를 사용할 수 있도록 CPU를 일정시간 단위로 분할 해서 처리하는 시스템입니다. 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 줍니다.다중 프로그래밍 시스템(multi-programming system)에 대해서 설명해주세요.메모리 공간을 분할하여 여러 개의 프로그램을 올려서 동시에 처리하는 방식을 말합니다.대화형 시스템(interacti..