본문 바로가기

기술면접30

운영체제 6장 정리 동기화 Race Condition Mutex Lock Semaphore 동기화 필요한 이유 - 모든 프로세스들이 컨커런트하게 실행되어야 하기 때문이다. 언제라도 인터럽트되고 다시 실행될 수 있어야 한다. Race Condition (경쟁 상황)이란 두 개 이상의 프로세스가 공통 자원에 병행하게 접근하려고 할 때 생긴다. 생산자 소비자 문제 10개가 있다. 한정된 데이터를 임시로 저장해두는 버퍼에 여러 생산자와 소비자가 접근하려고 한다. 생산자는 물건이 만들어지면 해당 버퍼에 저장한다. 그러나 저장할 공간이 없는 문제가 발생할 수 있다. 또한 소비자가 데이터를 소비하려고 할 때 소비할 데이터가 존재하지 않는 문제가 있다. 임계 구역 문제 여러 개의 쓰레드,프로세스가 수행되는 시스템에서 공유되는 데이터에 접근할 때 발생하는 문제이다. 임계 구역 문제를 해결해야 경쟁 상황을 피할.. 2022. 1. 19.
운영체제 5장 정리 CPU 스케쥴링 CPU 스케줄링 및 디스패칭(DisPatching) CPU 스케줄러 큐 Job Queue : 현재 시스템 내에 있는 모든 프로세스 Ready Queue : 현재 메모리 내에 있고 실행되기를 기다리는 프로세스 Device Queue : Device I/O 작업을 대기하고 있는 프로세스 CPU 스케줄링의 단계 1. 장기 스케쥴러 - 메모리와 디스크 사이의 스케쥴링을 담당 프로세스에 메모리와 리소스 할당 2. 단기 스케쥴러 - CPU와 메모리 사이의 스케쥴링을 담당 Ready Queue에 있는 프로세스 중 어떤 프로세스를 실행 시킬지 담당. 3. 중기 스케쥴러 - 여유 공간 마련을 위해서 프로세스를 메모리에서 내보낸다 (SWAPPING) 메모리에 많은 프로세스가 올라가는 것을 관리하는 스케쥴러 CPU 스케줄링.. 2022. 1. 19.
운영체제 4장 정리 프로세스와 쓰레드 프로세스와 쓰레드의 차이 프로세스는 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것을 말한다. 또한 프로세스는 프로세스 실행 중에 동적으로 할당되는 메모리인 힙을 포함한다. 쓰레드는 프로세스 내의 실행 단위이다. 한 프로세스 안에서 주소나 자원 공유들을 위해 CODE, DATA, HEAP을 공유하고 쓰레드마다 스택을 할당 받는다. 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것을 멀티스레딩 이라고 한다. 스택을 독립적으로 할당하는 이유는 각 쓰레드마다 독립적인 함수 수행이 가능해야 하기 때문에 최소한의 스택을 할당해 독립적인 함수 수행을 보장한다. (PC REGISTER 포함) 멀티.. 2022. 1. 19.
운영체제 3장 정리 메모리 메모리 안의 프로세스 구조 stack: 임시 데이터(함수 호출, 로컬 변수 등)가 저장되는 영역 heap: 코드에서 동적으로 생성되는 데이터가 저장되는 영역 data: 전역 변수/초기화된 데이터가 저장되는 영역 text(CODE): 컴파일된 소스 코드가 저장되는 영역 프로세스 상태 구조 Process Control Block(PCB) PCB 는 특정 프로세스에 대한 중요한 정보를 저장 하고 있는 운영체제의 자료구조이다. 프로세스를 관리하기 위해 프로세스의 생성과 동시에 고유한 PCB 를 생성 PCB에 저장되는 정보 프로세스 식별자(Process ID, PID) : 프로세스 식별번호 프로세스 상태 : new, ready, running, waiting, terminated 등의 상태를 저장 프로그램 카운터.. 2022. 1. 19.
운영체제 2장 정리 Opreating System Architecture 시스템 콜 application 단계에서 open()는 요청이 들어오게 되면 kernel 모드로 trap이라는 인터럽트를 걸고 해당 주소에 가서 open()을 열고 결과를 유저에게 주게 됩니다. 주소만 빠르게 레지스터를 통해 받게 됩니다. 유-커-유 링커와 로더의 역할 원천 코드에서 프로그램이 수행되는 과정 소스 프로그램 작성 컴파일러에 의해 .o 코드로 만들어진다. 여러 가지 오브젝트 파일을 링커로 연결을 시켜 실행할 수 있는 파일로 만든다. 실행할 수 있는 파일을 로더로 실행을 하게 된다. 레이어드 구조와 마이크로 커널 구조 레이어드 구조 레이어드 구조는 운영체제의 유지보수와 확장이 용이하고 보안적으로도 우수하지만 레이어 간 절차가 엄격해 효율이 떨어진다. 마이크로 커널 구조 마이크로 .커널 구조는 .. 2022. 1. 19.
운영체제 1장 정리 인터럽트 운영체제 운영 체제란 사용자의 편의성, 사용성을 위해 사용한다. 각각의 디바이스 컨트롤러들을 담당하고 통합적으로 관리해줘 사용자의 원할한 이용을 도와준다. 인터럽트 처리란 인터럽트는 컴퓨터 작동 시 예외 상황에서도 문제없이 작동을 할 수 있게 해주는 기능이다. 인터럽트가 없다면 폴링을 이용해야 하는데 효율이 상대적으로 떨어진다. Dual Mode Operation이란 운영체제는 유저 모드와 커널 모드가 있는데 프로그램들이 건들면 안되는 곳에 들어갈 수 없도록 하는 것이다. 운영체제에 활용되는 자료구조 리스트는 함수 호출과 함께 할당 및 소멸 스택은 멀티 태스킹을 위한 프로세스 스케쥴링 방식에 활용(우선순위 큐) 해시 테이블은 메모리 관리를 위한 자료 구조 트리는 바이너리 서치 트리를 이용해 탐색 시간을 .. 2022. 1. 19.