일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 코딩테스트
- C++
- 카카오 알고리즘
- TypeORM
- nestjs auth
- 가상면접사례로배우는대규모시스템설계기초
- nestjs typeorm
- 스프링
- 시스템호출
- thymeleaf
- Spring
- git
- 카카오 코테
- @Autowired
- 컴포넌트스캔
- nestJS
- @Component
- C언어
- 해시
- AWS
- 알고리즘
- 프로그래머스
- OpenCV
- spring boot
- 코테
- python
- Nodejs
- 카카오
- 구조체배열
- Today
- Total
목록# CS Study/Opearing System (12)
공부 기록장 💻
연습문제 1. 메모리 가져오기 정책 중, 사용자가 요구할 때 해당 페이지를 메모리로 가져오는 방식은 무엇인가? 요구 페이징 2. 요구 페이징과 반대로 앞으로 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식은? 미리 가져오기 (ex- 캐시) 3. 페이지 테이블 엔트리의 구조 중, 페이지가 실제 메모리에 있는지 나타내는 비트는 무엇인가? 유효 비트(valid bit) 6. 프로세스가 페이지를 요청했을 떄 해당 페이지가 메모리에 없는 상황을 무엇이라 하는가? 페이지 부재(page fault) 7. 기억장치에 접근하는 패턴이 메모리 전체에 고루 분포되는 것이 아니라 특정 영역에 집중되어 있는 성질을 무엇이라 하는가? 지역성 14. FIFO 변형 페이지 교체 알고리즘 중, 대상 페이지를 가리키는 포인터를 사..
1. 가상 메모리 개요 1. 가상 메모리 시스템 가상 메모리란, 물리 메모리 크기와 상관 없이 프로세스에 커다란 메모리 공간을 제공하는 기술 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용 가능하게 된다. 가상 메모리의 크기 크기 = 물리 메모리 크기 + 스왑 영역의 크기 가상 주소를 실제 메모리의 물리 주소로 변환하는 동적 주소 변환을 거치면 프로세스가 아무 제약 없이 사용자의 데이터를 물리 메모리에 배치할 수 있다. 가상 메모리의 메모리 분할 방식 세그먼테이션(가변 분할)과 페이징(고정 분할)기법이 있으며, 세그먼테이션 기법은 외부 단편화의 문제로 잘 사용하지 않는다. 따라서 세그먼테이션-페이징 혼용 기법을 주로 사용 2. 매핑 테이블의..
연습문제 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식은 무엇인가? 반양방향 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것을 무엇이라고 하는가? 바쁜 대기(busy waiting) 프로세스 간 통신에서 대기가 없는 통신과 대기가 있는 통신의 예를 각각 제시하시오 대기가 있는 통신(동기화 통신): 파이프, 소켓 대기가 없는 통신(비동기화 통신): 전역 변수, 파일 파이프를 이용하여 통신할 때 파이프를 2개 사용하는 이유는 무엇인가? 파이프는 단방향 통신을 지원하므로, 양방향 통신을 하기 위해 파이프 2개를 사용해야 한다. 공유 자원을 병행적으로 읽거나 쓰는 상황을 무엇이라 하는가? 공유 자원의 접근 공..
5장의 목표 독립적인 프로세스끼리 작업을 하다 서로 데이터를 주고받아야 할 때 통신을 하는 경우, 누가 먼저 작업을 할지, 작업이 언제 끝날지 등을 서로 알려주어야 하는 동기화 같은 데이터를 여러 프로세스가 사용할 때 서로 침범하면 안되는 임계구역 문제 해결 1. 프로세스 간 통신 병행 프로세스의 개념 병행 프로세스(Concurrent Process) 종류 독립 프로세스 - 단일 처리 시스템에서 수행하는 병행 프로세스, 다른 프로세스에 영향을 주고받지 않으면서 독립 실행 협력 프로세스 다른 프로세스와 상호작용(통신)하며 특정 기능을 수행하는 비동기적 프로세스 제한된 컴퓨터 자원의 효율성 증대, 계산 속도 향상, 모듈적 구성 강화, 개별 사용자의 여러 작업을 동시에 수행하여 편의성 제공에 사용됨 병행 프로..
연습문제 시스템 내 전체 프로세스의 주를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가? 고수준 스케줄링 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가? 저수준 스케줄링 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 뺴앗을 수 있는 스케줄링은 무엇인가? 선점형 스케줄링 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은 무엇인가? 전면 프로세스 준비 큐에 도착한 순서대로 CPU를 할당받는 비선점형 스케줄링 알고리즘은 무엇인가? FCFS(First Come First Served) 스케줄링 준비 큐에 있는 프로세스 중 실행 시..
1. 스케줄링의 개요 CPU 스케줄러 : 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원의 배정을 결정 스케줄링의 단계 고수준 스케줄링(high-level, long-term, job scheduling) 전체 시스템 부하를 고려하여 전체 작업 수를 조절하는 것 작업(1개 또는 여러 개의 프로세스)을 수용할지 거부할지를 결정 → 승인 스케줄링(admission scheduling) → 멀티 프로그래밍 정도(degree of multiprogramming) 메인 프레임과 같은 큰 시스템에서 규모가 큰 일괄 작업을 처리할 때 사용 저수준 스케줄링(low-level, short-term scheduling) 어떤 프로레스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정 → 단기 스케줄..
연습 문제 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받아야 하는가? 운영체제로부터 프로세스 제어 블록을 얻어야 함 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태는 무엇인가? 준비 상태 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태는 무엇인가? 대기 상태 - 실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될때까지 기다리는 상태 (wait status) 유닉스에서 Ctrl + Z 키를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는가? 휴식 상태 - 프로그램이 잠시 실행을 멈춘 상태 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황을 무엇이라고 하는가? 문맥 교환 - CPU를 차지하던 프로세스가 나가고, 새로운 프로세스를 받아들이는 작..
1. 프로세스의 개념 프로그램: 저장장치에 저장되어 있는 정적인 상태 프로세스(process): 실행을 위해 메모리에 올라온 동적인 상태, 실행중인 프로그램 exe 실행 파일(바이너리 파일) → 실행되어 메모리에 적재되면 ‘프로세스’가 됨 비동기적(asynchronous) 행위 운영체제에 들어있는 프로세스 제어블록이 생성됨 프로세서(CPU)에 할당하여 실행할 수 있는 개체 디스패치가 가능한 대상 프로세스를 처리할 때는, 일괄 방식이 아닌 시분할 방식을 사용하여 시간을 배분함으로써 시스템의 효율을 높인다. 프로세스와 메모리 프로그램에서 프로세스로의 전환 프로세스 제어 블록(PCB, Process Control Block) OS가 해당 프로세스를 위해 관리하는 자료구조 (Linked List 기반) 프로세스..
OS 2장 문제 풀이 연습 문제 1. CPU의 구성에 대해 설명하시오. 산술 연산 장치(Arithmetic Logic Unit) - 산술(덧셈, 뺄셈, 곱셈 나눗셈 등)연산과 논리(AND, OR, XOR 등) 연산 수행 제어 장치(Controller) - 레지스터에 있는 데이터를 가져다가 명령어를 해석하소 실행을 지시 레지스터(Register) - 메모리의 데이터를 임시로 보관하는 장치 2. 폰노이만 구조의 가장 중요한 특징을 설명하시오. 하드웨어는 그대로 둔 채, 작업을 위한 프로그램만 교체하여 메모리에 올리는 형식으로, CPU는 메모리에 내장된 프로그램을 불러와 수행하는 폰 노이만 구조(=내장형 메모리 구조)를 사용한다. 3. 버스의 종류를 나열하시오. 제어 버스 데이터 버스 주소 버스 4. 다음에 ..
컴퓨터의 구조와 성능 향상 CPU와 메모리가 컴퓨터의 동작의 핵심이고, 운영체제를 이해하는데 가장 중요 1. 컴퓨터의 기본 구성 하드웨어의 구성 필수장치: 중앙처리장치(CPU), 메모리(메인메모리) 주변장치: 입출력장치, 저장장치(보조저장장치) CPU: 명령어를 해석하여 실행하는 연산장치 메모리 작업에 필요한 프로그램과 데이터를 저장하는 장소 바이트 단위로 분할되어 있으며 분할 공간마다 주소(address)로 구분 저장장치 메모리(RAM)보다는 느리지만 저렴하고 용량이 큼(SSD, SD카드) 전원의 On/Off와 상관없이 데이터를 영구적으로 저장 메인 보드 CPU와 메모리 등 다양한 부품을 연결하는 커다란 판 전력이 공급되면 버스로 연결된 부품이 작동 그래픽 카드, 사운드카드, 랜 카드 등이 기본적으로 ..
연습 문제 1. 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템 자원을 효율적으로 관리하는 소프트웨어는 무엇인가? 운영체제(OS, Operating System) 2. 가전제품과 같이 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 무엇이라고 하는가? 임베디드 운영체제(임베디드 시스템) 3. 사용자가 원하는 기능을 수행하기 위해 컴퓨터 자원을 사용하는 소프트웨어는 무엇인가? 응용 프로그램 4. 운영체제가 없는 컴퓨터에서는 어떤 문제가 발생하는지 설명하시오. 만들 당시에 구현한 기능 외에 다른 기능을 추가하거나 성능을 향상할 수 꾀할 수 없다. 새로운 기능을 구현하려면 매번 전선 회로를 변경해야 하고 복잡한 기능은 구현하기 어렵다. 5. 기계와 사용자 사이에 명령을 ..
01 운영체제의 개요 운영체제의 필요성 프로그래밍이 가능한(programmable) 기계: 새로운 기능의 추가나 성능의 변경이 가능 자원 관리(resource management) 컴퓨터 자원(키보드, CPU, 메모리, 주변장치-하드디스크, 마우스, 사운드카드, 그래픽카드, 네트워크카드, 터치패드)에 사용자가 직접 접근하는 것을 막음으로써 자원을 보호하고 관리 하드디스크의 특정 위치에 데이터를 저장할 수 없음 운영체제가 다양한 인터페이스를 제공함으로써 컴퓨터 자원을 관리하고 보호 응용 프로그램(워드 프로세서, 웹 브라우저, 채팅, 음악 재생 SW)에게 컴퓨터 자원을 골고루 배분하고 및 회수하고, 응용 프로그램이 활동할 수 있는 환경을 제공 운영체제의 정의 운영체제: 사용자에게 편리한 인터페이스 환경을 제..