Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 지네릭스
- 백준 4949번
- 리액트 네이티브 프로젝트 생성
- 스터디
- 데베
- 깃 터미널 연동
- 모두의 네트워크
- 백준 4358번
- 백준 4358 자바
- 모두를 위한 딥러닝
- 팀플회고
- SQL
- 딥러닝
- 자바
- 리액트 네이티브
- 데이터베이스
- 백준
- 깃 연동
- 백준 5525번
- 문자열
- 모두의네트워크
- 깃허브 로그인
- 머신러닝
- HTTP
- 네트워크
- 깃허브 토큰 인증
- 리액트 네이티브 시작하기
- 모두를위한딥러닝
- React Native
- 정리
Archives
- Today
- Total
솜이의 데브로그
[cs] 운영체제 본문
1. 페이지와 세그멘테이션에 대해서 설명해 보세요.
페이징은 가상 메모리를 고정된 크기로 나누어 메모리를 관리하는 기법을 말합니다.
- 커다란 크기의 작업을 일정한 크기로 나누어 잘게 쪼개어 처리한다.
- 메모리를 페이지 단위로 가져와서, 프로세스의 효율적인 운영이 가능하다.
- 페이지 크기별, 단위별로 페이지 폴트 현상이 발생할 수 있다.
세그멘테이션이란, 메모리를 서로 크기가 다른 논리적인 블록 단위인 세그멘트로 분할하고 메모리를 할당하여 물리 주소를 논리 주소로 변환하는 것을 말합니다.
2. 외부 단편화와 내부 단편화에 대해서 설명해 보세요.
외부 단편화
- 분할된 영역이 할당될 프로그램의 크기보다 작아서 모두 빈 공간으로 남아있는 전체 영역.
- 세그멘테이션에서 발생
내부 단편화
- 분할된 영역이 할당된 프로그램의 크기보다 커서 사용되지 않고 남아 있는 빈 공간
- 페이징에서 발생
3. 가상 메모리(Virtual Memory)란 무엇이며, 가상 메모리를 사용했을 때 장단점은?
가상메모리는 프로세스가 메모리 외부에서 실행될 수 있도록 하는 유용한 메모리 관리 기술입니다. 이 기술은 실행 프로그램이 실제 메모리에 맞지 않을때 사용됩니다.
4. 프로세스와 스레드의 차이는 무엇인가요?
- 프로세스란, 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다.
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)
- 운영체제로부터 시스템 자원을 할당받는 작업의 단위
- 즉, 동적인 개념으로는 실행된 프로그램을 의미한다.
- 프로세스는 각 독립된 메모리 영역을 할당받으며, 기본적으로 프로세스당 최소 1개의 스레드를 가지고 있다.
- 스레드란, 프로세스 내에서 실행되는 여러 흐름의 단위를 말합니다.
- 프로세스의 특정한 수행 경로
- 프로세스가 할당받은 자원을 이용하는 실행의 단위
- 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고, Code, Data, Heap 영역은 공유한다.
- 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나 자원들을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다.
5. 교착상태가 발생하기 위한 조건 4가지는 무엇인가요?
교착상태(Deadlock)이란?
- 첫번째 스레드는 두번째 스레드가 들고 있는 객체의 락이 풀리기를 기다리고 있고, 두 번째 스레드 역시 첫 번째 스레드가 들고 있는 객체의 락이 기다리는 상황을 말한다.
교착상태의 4가지 조건
- 상호배제(mutual exclusion)
- 한번에 한 프로세스만 공유 자원을 사용할 수 있다.
- 공유 자원에 대한 접근 권한이 제한된다.
- 들고 기다리기(hold and wait ) = 점유대기
- 공유 자원에 대한 접근 권한을 갖고 있는 프로세스가 그 접근 권한을 양보하지 않은 상태에서 다른 자원에 대한 접근 권한을 요구할 수 있다.
- 선취(preemption) 불가능 = 비선점
- 한 프로세스가 다른 프로세스의 자원 접근 권한을 강제로 취소할 수 없다.
- 대기 상태의 사이클(circular wait) = 순환대기
- 두 개 이상의 프로세스가 자원 접근을 기다리는데, 그 관계에 사이클이 존재한다.
6. 회피 기법인 은행원 알고리즘이 뭔지 설명해보세요.
교착 상태를 피하기 위한 알고리즘으로, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래한 기법이다.
- 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지를 사전에 검사하여 교착 상태를 회피한다.
- 안정 상태에 있으면 자원을 할당하고, 그렇지 않으면 다른 프로세스들이 자원을 해지할 때까지 대기한다.
7. 세마포어와 뮤텍스란? 차이점은 무엇인가?
- 뮤텍스(Mutex)
- 공유된 자원의 데이터를 여러 스레드가 접근하는 것을 막는 것
- 상호배제라고도 하며, Critical Section을 가진 스레드의 Running time이 서로 겹치지 않도록 각각 단독으로 실행하게 하는 기술이다.
- 다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 synchronized 또는 lock을 사용한다.
- 세마포어(Semaphore)
- 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것
- 운영체제 또는 커널의 한 지정된 저장장치 내의 값이다.
- 일반적으로 비교적 긴 시간을 확보하는 리소스에 대해 이용한다.
- 각 프로세스는 세마포어값을 확인하고 변경할 수 있다.
8. 동기, 비동기, 블로킹, 넌블로킹 차이를 설명하세요.
- 동기 (Synchronouse)
- 두개의 프로세스가 데이터를 주고 받을 때, 주고받는 순서 또는 시간이 일정함을 뜻한다.
- 어떤 작업을 요청햇을 때 그 작업이 종료될 때까지 기다린 후 다음 작업을 수행한다.
- 비동기
- 어떤 작업을 수행했을 때 그 작업이 종료될 때까지 기다리지 않고 (작업을 위임하고), 다음 작업을 수행한다. 요청했던 작업이 끝나면 결과를 받고 그에 따른 추가 작업이 있다면 수행한다.
- I/O 작업이 잦고 빠른 응답속도를 요구하는 프로그램에 적합하다.
- 블로킹
- A 함수가 B 함수를 호출하면, 제어권을 A가 호출한 B함수에 넘겨준다.
- 논블로킹
- A 함수가 B 함수를 호출해도 제어권은 그대로 자신이 가지고 있는다.
9. thrashing이란 무엇인지 설명하세요.
thrashing이란, 페이지 부재가 과도하게 발생하는 상황을 말합니다.
주기억장치의 모든 페이지가 활발히 사용되고 있어서 어떤 페이지가 교체된 후 곧바로 반복적인 페이지 부재가 발생하는 것을 말한다.
10. 선점스케줄링과 비선점스케줄링, 해당하는 알고리즘 한개씩 말하고 설명해 주세요.
선점 스케줄링
- 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- 선점으로 인한 많은 오버헤드가 발생한다.
- 시분할 시스템에 사용하는 스케줄링이다.
- SRT(Shortest Remaining Time) : 현재 실행중인 프로세스의 남은 시간과 대기 큐에 프로세스의 실행시간이 가장 짧은 프로세스에게 CPU를 할당하는 기법. (SJF알고리즘의 선점 형태로 변환한 기법)
비선점 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다.
- 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.
- 일괄처리 방식의 스케줄링
- SJF(Shortest Job First) : 실행시간이 가장 짧은 프로세스에 먼저 CPU를 할당하는 기법이다. 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘이다.
'CS > etc' 카테고리의 다른 글
[CS] 데이터베이스 (0) | 2022.04.28 |
---|---|
[CS] 네트워크 (0) | 2022.04.14 |
[CS] 알고리즘 (0) | 2022.04.07 |
[CS] 개발 상식 (0) | 2022.03.31 |