Cute Running Puppy
반응형

운영체제 8

[운영체제] 면접 예상 질문 & 답변 모음 - 인터럽트(interrupt)

2. 인터럽트가 무엇인지 설명해 주세요 인터럽트는 cpu의 작업을 방해하는 신호로 명령어 사이클이 끊어지는 상황을 의미합니다. 명령어 사이클: 하나의 명령어를 처리하는 정형화된 흐름 인터럽트는 동기 인터럽트와 비동기 인터럽트로 구분할 수 있습니다 a. 동기 인터럽트 예) cpu가 실행하는 프로그램상의 오류 CPU에 의해 발생하는 인터럽트로 예외 (exception)이라고 부릅니다. b. 비동기 인터럽트 예) cpu가 요구한 작업을 마친 입출력 장치가 보내는 완료 알림 예) 입출력 장치가 입력을 받은 후 이를 처리하기 위한 입력 알림 주로 입출력 장치에 의해 발생하는 인터럽트로 하드웨어 인터럽트라고 부릅니다. 2-1. 인터럽트는 어떻게 처리하나요 인터럽트 신호가 발생했을 때 cpu는 인터럽트 플래그를 통해..

[운영체제] 면접 예상 질문 & 답변 모음 - 시스템 콜(system call)

1. 시스템 콜이 무엇인지 설명해 주세요 시스템 콜은 사용자 모드에서 운영체제 서비스를 제공받기 위한 요청으로 시스템 콜 요청시 사용자 모드에서 커널 모드로 전환되어 cpu 자원에 접근할 수 있습니다. 이중 모드: cpu가 명령어를 실행하는 모드를 "사용자 모드"와 "커널 모드"로 구분하는 방식 - 사용자 모드 : 운영체제 서비스를 제공받을 수 없는 실행 모드 : 커널 영역의 코드를 실행할 수 없는 모드 (자원 접근 불가) - 커널 모드 : 운영체제 서비스를 제공받을 수 있는 실행 모드 : 커멀 영역의 코드를 실행할 수 있는 모드 (자원 접근 명령어 실행 가능) 1-1. 우리가 사용하는 시스템 콜의 예시를 들어주세요 대표적인 시스템 콜으로 fork(), exec(), wait(), exit()가 존재합니..

[혼공컴운] chapter 09. 운영체제 시작하기

09-1. 운영체제를 알아야 하는 이유 운영체제란 프로그램에 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 프로그램 (시스템) 자원: 프로그램 실행에 필요한 요소들 cpu, 메모리, 보조기억장치, 입출력 장치와 같은 부품 커널 영역: 부팅시 운영체제가 적재되어 실행되는 공간 사용자 영역: 응용 프로그램이 적재되는 공간 (커널 영역을 제외한 나머지 공간)운영체제를 알아야 하는 이유운영체제를 통해 하드웨어의 상태, 코드 실행 상태, 문제 상황 등을 파악할 수 있기 때문 하드웨어와 프로그램을 깊이 이해할 수 있음 09-2. 운영체제의 큰 그림 운영체제의 심장, 커널 자원 접근, 조작, 프로그램 안전 실행 등 운영체제의 핵심 서비스를 담당하는 부분 사용자 인터페이스: 커널에 포함되지 않는, 사용자와 상호작..

[혼공 컴운] chapter 05. CPU 성능 향상 기법

05-1. 빠른 CPU를 위한 설계 기법 클럭 컴퓨터 부품들을 움직이는 신호 -> 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 더 빠른 박자에 맞추어 움직임 > 클럭 속도 Hz 단위로 측정 CPU로 속도 단위 클럭 속도가 높을수록 CPU의 성능이 좋음 클럭 속도는 일정하지 않다. 유연하게 속도를 변화시킬 수 있다. 오버클럭킹: 최대 클럭 속도를 강제로 끌어올리는 기법 클럭 속도를 무작정 높이면 발열 문제가 심각해짐 클럭 속도만으로 CPU의 성능을 높이는 것은 한계가 있음 코어와 멀티코어 클럭 속도를 높이는 방식 외에 CPU의 성능을 높이는 방법 -> CPU의 코어, 스레드 수 늘리기 > 코어 CPU 내부에서 명령어를 실행하는 부품 > 멀티코어 CPU (== 멀티코어 프로세서) CPU 내에..

[혼공컴운] chapter 04. CPU의 작동 원리

| 참고 도서: 혼자 공부하는 컴퓨터 구조+운영체제 04-1. ALU와 제어 장치 ALU CPU에서 계산을 하는 부품 레지스터를 통해 피연산자와 제어 신호를 받아들인다. 피연산자와 제어신호를 바탕으로 다양한 연산 수행 > ALU의 결과 값을 레지스터에 우선 저장하는 이유 CPU에서 레지스터에 접근하는 속도는 메모리에 접근하는 속도보다 빠르다 접근 속도를 줄여 프로그램의 실행 속도를 높이기 위해 메모리가 아닌 레지스터에 연산의 결괏값을 저장한다. > 플래그 (flag) 연산에 대한 추가적인 상태 정보 부호, 제로, 캐리, 오버플로우, 인터럽트, 슈퍼바이저 플래그 플래그는 플래그 레지스터에 저장된다. 플래그 레지스터를 통해 연산 결과에 대한 추가적인 정보를 얻을 수 있다. 제어장치 제어 신호를 내보내고, 명..

[혼공컴운] chapter 03. 명령어

03-1. 소스 코드와 명령어 고급 언어와 저급 언어 고급 언어: 사람을 위한 언어 저급 언어: 컴퓨터를 위한 언어 예) 기계어, 어셈블리어 기계어: 0과 1의 명령어 비트로 이루어진 언어 고급 언어로 작성된 소스 코드는 반드시 저급 언어(명령어)로 변환되어야 한다 컴파일 언어와 인터프리터 언어 컴파일 방식: 소스 코드 전체를 저급 언어로 변환 -> 목적코드 생성 인터프리터 방식: 소스 코드를 한 줄씩 실행 목적 파일 vs 실행 파일 목적 파일: 목적 코드로 이루어진 파일 실행 파일: 실행 코드로 이루어진 파일 링킹: 목적 코드를 실행 코드로 변환하는 과정 03-2. 명령어의 구조 연산 코드와 오퍼랜드 명령어 = 연산 코드 + 오퍼랜드 연산 코드 (== 연산자): 명령어가 수행할 연산 오퍼랜드 (== 피..

[혼공컴운] chapter 02. 데이터

| 참고 도서: 혼자 공부하는 컴퓨터 구조+운영체제 02-1. 0과 1로 숫자를 표현하는 방법 정보 단위 비트 (bit): 가장 작은 정보 단위 바이트(byte): 8비트 킬로바이트(kB): 1000byte 메가바이트(MB): 1000kB 기가바이트(GB): 1000MB 테라바이트(TB): 1000GB 워드: CPU가 한 번에 처리할 수 있는 데이터의 크기 이진법 이진법: 0과 1으로 모든 숫자를 표현 하는 방법 음수 표현: 2의 보수법 + flag 사용 십육진법 이진법으로 모든 숫자를 표현하면 숫자의 길이가 너무 길어짐 & 이진법으로 변환하기 쉬움-> 십육진법으로 해결 15를 넘어가는 시점에서 올림 0x--으로 표시 이진수 -> 십육진수: 네자리씩 십육진수로 변환하고 이어 붙이기 십육진수 -> 이진수:..

[혼공컴운] chapter 01. 컴퓨터 구조 시작하기

| 참고 도서: 혼자 공부하는 컴퓨터 구조+운영체제 01-1. 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조 이해를 통해 문제 해결 능력 향상 성능/용량/비용을 고려하여 개발 가능 01-2. 컴퓨터 구조의 큰 그림 컴퓨터 구조 지식 컴퓨터가 이해하는 정보 컴퓨터의 네 가지 핵심 부품 컴퓨터가 이해하는 정보 데이터: 0 과 1로 이루어진 정보 명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보 => 명령어: 컴퓨터 작동 정보, 데이터: 재료 컴퓨터의 4가지 핵심 부품 중앙처리장치 (CPU) 주기억장치 (메모리 - RAM, ROM, ...) 보조기억장치 입출력장치 1. 메모리 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 => 실행되기 위해서는 반드시 메모리에 프로그램이 저장되어 있어야 한다 주소:..