8회차 운영체제 | 데드락, 동기화(뮤텍스, 세마포어) 등 질문 정리
24.01.26 나온 질문 공유 1) 뮤텍스와 스핀락이 어떤 상황에 적합한지 - 뮤텍스 : 대부분의 상황에서 뮤텍스가 더 효율적이다. - 스핀락 : 임계구역 내 작업 시간이 문맥 교환 시간보다 빠를 때는 스핀락이 더 효율적이다. 2) 데드락의 발생 조건 4가지 상호 배제/ 점유 대기/ 비 선점/ 원형 대기 3) 동기화 문제가 무엇인지 설명 동기화 문제 - 스레드가 동시에 공유자원에 대한 접근할 때, 원자적으로 수행되지 않아 일관적이지 않게 됨 4) 세마포어와 뮤텍스의 차이 세마포어 - 여러 자원에 접근 가능, 락을 건 주체가 락을 해제가능 뮤텍스 차이 - 공유자원이 한개일 때 사용 가능, 락을 건 주체 아니어도 락 해제 가능 5) 회피 기법 중 은행원 알고리즘 단점 자원 할당량을 미리 알아야하는데 미리 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 27.
8회차 운영체제 | 데드락, 동기화(뮤텍스, 세마포어) 등 내용 정리
OS 데드락 데드락 조건 4가지 동기화(뮤텍스, 세마포어, 모니터, 스핀락, 어토믹 설명) 들어가기 전 동시다발적으로 실행되는 프로세스(스레드)들은 서로 협력하며 영향을 주고받는다. 이때, 자원의 일관성을 보장하기 위해 프로세스 동기화를 고려해야 한다. 실행 문맥을 갖는 모든 대상은 동기화 대상이다. (스레드도 프로세스도 동기화 대상) 프로세스 동기화 동기화란? 여러 프로세스가 공유 자원에 동시에 접근해도 '공유 자원의 일관성'을 유지하는 것 프로세스들의 수행 시기를 맞추는 것 실행 순서를 위한 동기화와 상호 배제를 위한 동기화가 있다. 1) 실행 순서 제어: 프로세스를 올바른 순서대로 실행되도록 제어 2) 상호 배제 : 동시에 접근해서는 안 되는 자원(=공유 불가능 자원)에 하나의 프로세스만 접근하게 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 26.
7회차 운영체제 | 세그멘테이션, 페이징, 단편화 관련 질문 정리
24.01.23 질문 정리 | 24.04.12 답변 재정리 1) 페이징과 세그멘테이션 기법을 비교 - 페이징과 세그먼테이션 기법 모두 불연속적으로 메모리에 할당하는 방식인데, 고정 크기인 페이지 단위로 쪼개냐, 가변적인 세그먼트 단위로 쪼개냐 차이 - 페이징의 경우 각 프로세스를 가상 메모리에는 (고정 크기인) 페이지 단위로 쪼개고, 이를 실제 메모리의 프레임에 매핑시키는 방식으로 동작합니다. 고정 크기로 쪼개기 때문에 내부 단편화가 발생할 수 있습니다. - 세그먼테이션 기법은 각 프로세스를 논리적 단위인 (가변 크기) 세그먼트 단위로 분할하여 서로 다른 위치에 할당시킵니다. 크기가 저마다 다르고 논리적 단위로 쪼개기 때문에 외부 단편화가 발생할 수 있습니다. 2) 페이징에서 주소 변환을 할 때 TLB ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 24.
7회차 운영체제 | 세그멘테이션, 페이징, 내부 단편화, 외부 단편화 내용 정리
세그멘테이션, 페이징 (내부단편화 ,외부단편화) 가상 메모리 등장 배경 📌 메인 메모리의 용량은 한정적입니다. 기존에는 프로그램 전부를 메모리에 올려 실행을 하다 보니, 물리 메모리보다 큰 용량의 프로그램을 실행할 수 없었습니다. 이러한 문제를 해결하기 위해서 가상 메모리 개념이 등장합니다. 또한, 프로세스의 모든 부분은 항상 필요한 것이 아니라서, 현재 실행에 필요한 부분만을 메모리에 올림으로써 해결하는 것입니다. → 가상 메모리 기법은 실제 메모리 크기와 프로세스가 올라갈 메모리 위치를 신경 쓰지 않고, 메모리를 이용할 수 있도록 지원하는 기술이다. 가상 메모리 ⬛ 가상 메모리 (Virtual Memory) 가상 메모리는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 22.
6회차 운영체제 | 메모리 구조 관련 질문 정리
24.01.19 금 질문 내용 | 24.04.04 답변 업데이트 1) 메모리 구조에서 데이터 영역는 어떤 정보가 들어가는지 설명 - BSS 영역 (Block Started by Symbol) : 명시적으로 초기화 되지 않은 XX (전역, 정적 변수들 저장됨) - Data 영역 : 명시적으로 초기화 된 OO (전역, 정적 변수들 저장됨) 2) 메모리 영역에서 런탐임에 할당되는것들 - 영역 크기/사이즈 : (런타임) 힙 | (정적) 코드, 데이터, 스택 크기 - 메모리 할당 : (런타임) 힙, 스택 | (정적) 코드, 데이터 3) 다른 메모리 영역을 (침범) 접근하려 할 때 어떤일이 발생하는가? CPU 예외 > OS 예외처리를 통해 프로세스 종료 시킨다. 인터럽트 = 하드웨어 + 소프트웨어(트랩) 트랩 - ..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 19.
6회차 운영체제 | 메모리 구조 관련 내용 정리
메모리구조/ 스택/ 힙/ 데이터/ 코드 영역 - 선언하면 어느쪽에 저장되는지 설명하기 메모리 계층 구조 | 기억 장치의 계층 구조 1) CPU의 레지스터 (Register) 레지스터는 CPU에 위치한 고속 메모리. CPU가 바로 사용할 수 있는 데이터 저장 CPU(Center Process Unit) | 중앙 처리 장치 : 컴퓨터에서 기억, 해석, 연산, 제어 4대 주요 기능 관활하는 컴퓨터의 대뇌 장치 CU(Control Unit) | 제어 장치 : CPU의 한 부품으로, 입출력 장치 간 통신 조율을 제어명령어 읽고 해석, 데이터 처리 위한 순서 결정 ALU (Arthmetic Logic Unit) | 산술 논리 장치 : 산술 연산, 논리 연산 계산하는 디지털 회로 2) 캐시 | Cache 캐시는 메인..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 18.
5회차 운영체제 | 프로세스, 스레드, PCB 등 질문 정리
24.01.16 화 질문 내용 모음 | 24.04.04 답변 업데이트 1) Context Switching(문맥 교환)에 대해 설명하고, 왜 필요한지 설명해주세요. - CPU는 한 번에 하나의 프로세스를 수행하는데, 실생활에서는 여러 개 프로세스를 동시 수행하길 원하고, 따라서 CPU가 동시 수행하는 것처럼 보이기 위해 여러 프로세스를 번갈아가며 수행한다. - 또한, 문맥교환 시간보다 I/O 작업이 더 오래걸려서, 그 사이에 문맥교환을 하는 것이 더 효율적이다 . 2) 스레드가 스택을 제외해서 자원을 공유하는데, 왜 스택은 따로 할당받나요? - 스택은 함수의 실행과 관련있다. 각 스레드가 독립적인 실행 흐름을 갖기 위한 최소 조건으로 스택 영역에 대해서는 별도로 할당받는 것이다. 3) 멀티 쓰레드의 장점..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 16.
5회차 운영체제 | 프로세스, 스레드, PCB 등 내용 정리
OS 스레드 , 프로세스 차이 (멀티스레드와 멀티프로세스차이, PCB) 운영체제 (Operating System) HW 하드웨어와 SW 소프트웨어를 관리하는 역할 1) 운영체제의 역할 - (4) (1) CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스 생성과 삭제 자원 할당 및 반환을 관리 (2) 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 할지 관리 (3) 디스크 파일 관리 : 디스크 파일을 어떤 방법으로 보관할지 관리 (4) I/O 디바이스 관리 : I/O 디바이스 (마우스, 키보드)와 컴퓨터 간 데이터 주고받는 것 관리 2) 운영체제 구조 위의 형태가 운영체제의 구조적 형태이다. 1) GUI/CLI GUI : (그래픽 유저 인터페이스) 사용자..
- [스터디] CS 기술 면접 준비/CS_운영체제 [Operating System]
- · 2024. 1. 15.