본문 바로가기

Computer Science59

[OS] 프로세스와 컨텍스트 스위칭이란? (프로세스 상태와 관리, 프로세스 구조와 구성, 컨텍스트 스위칭 오버헤드) 목차 프로세스란? 프로세스 상태와 관리 프로세스 구조 : 프로세스가 접근할 수 있는 메모리 구조 프로세스 구성 : PCB (Process Control Block) 컨텍스트 스위칭이란? 컨텍스트 스위칭 과정 컨텍스트 스위칭과 오버헤드 1. 프로세스란? 프로그램은 단순히 디스크에 저장되어 있는, 기계어로 작성된 실행할 수 있는 파일을 의미한다. 컴퓨터는 프로그램을 실행하기 위해 CPU에게서 메모리를 할당받아 프로그램을 메모리에 적재시켜 실행하는데, 이를 프로세스라고 한다. 따라서 프로세스를 실행 중인 프로그램, 혹은 메모리에 올라간 프로그램으로 칭하기도 한다. 프로그램 : 디스크(보조 기억장치)에 저장되어 있는 passive한 개체 프로세스 : 메모리(주 기억장치)에 적재되어 있는 active한 개체 2... 2024. 1. 9.
[OS] 인터럽트란? (인터럽트가 필요한 이유, 인터럽트 동작 방식, 종류, 한번에 여러개의 인터럽트가 발생한다면?) 목차 인터럽트란? 인터럽트가 필요한 이유 인터럽트 동작 방식 인터럽트 종류 한 번에 여러 개의 인터럽트가 발생한다면? 1. 인터럽트란? 프로그램이 동작하고 있을 때 하드웨어 처리(주로 입출력 연산) 혹은 예외 상황에 대한 처리가 필요할 때, CPU에게 이를 알려 처리할 수 있도록 하는 일종의 신호이다. 예를 들어, 키보드 입력이 들어왔을 때 실행 중이던 프로그램을 중단하고 키보드 입력을 수행하는데, 이때 인터럽트를 통해 CPU에게 입출력 처리가 필요함을 알리는 것이다. 이후 인터럽트에 대한 처리를 끝내면 다시 작업 중이던 프로그램을 실행한다. 2. 인터럽트가 필요한 이유 일단 입출력 연산이 발생했을 때 구체적인 과정을 설명해보려고 한다. 메모리 및 I/O 장치 등의 하드웨어는 컨트롤러가 처리하는데, 오가.. 2024. 1. 6.
[OS] 시스템 콜이란? (시스템콜 종류, 시스템콜 동작 방식) 목차 시스템 콜이란? 시스템 콜 동작 방식 시스템 콜 동작 방식 1. 시스템 콜이란? 운영체제는 공유된 자원에서 충돌이 발생하거나, 사용자나 응용 프로그램이 직접 하드웨어에 접근하는 것을 막을 필요가 있다. 이를 위해 유저 모드와 커널 모드라는 권한을 부여함으로써 자원을 보호하고 안정성을 유지한다. 사용자나 응용 프로그램은 하드웨어를 사용하기 위해 유저 모드에서 커널 모드로 변환이 필요한데, 이때 시스템 콜을 통해 유저 모드에서 커널 모드로 변환되어 작업한다. 즉, 시스템 콜은 커널(운영체제가 제공하는 서비스, 예로 하드웨어 사용)을 사용하기 위한 인터페이스이다. 2. 시스템 콜 동작 방식 1) 응용 프로그램에서 내부적으로 시스템 콜을 호출한다. (일반적으로는 API 형태로 감싸져 있음) 2) 시스템 콜.. 2024. 1. 5.
[OS] 커널이란? (유저 모드, 커널 모드가 필요한 이유, CPU Protection Ring, 커널모드, 유저모드) 목차 커널이란? 유저 모드, 커널 모드가 필요한 이유 CPU Projection Ring 유저 모드 커널 모드 1. 커널이란? 하드웨어와 응용 프로그램 사이에서 필요한 컴퓨터 자원들을 관리한다. 즉, 응용 프로그램이 동작할 수 있도록 명령을 따르고 하드웨어(프로세스, 메모리 관리, IO장치) 등의 자원들을 관리하는 핵심 역할을 한다. 2. 유저 모드, 커널 모드가 필요한 이유 우리가 컴퓨터를 할 때 운영체제는 여러 프로그램이 동시에 동작할 수 있도록 다중 프로그래밍을 지원한다. 여러 프로세스가 하나의 자원에 동시에 접근하려 할 때 충돌이 발생하거나, 사용자나 응용 프로그램이 직접 하드웨어에 접근하는 것을 막을 필요가 있다. 따라서 유저 모드와 커널 모드라는 권한을 부여해 이를 제어하며, 프로세스가 실행되.. 2024. 1. 4.
[OS] 운영체제란? (운영체제 역할, 기능, 구조) 목차 운영체제란 운영체제 역할 운영체제 기능 운영체제 구조(구성 요소) 1. 운영체제란 운영체제는 프로세스, 메모리 등과 같은 컴퓨터 자원들을 효율적으로 관리하고, 사용자가 컴퓨터를 편리하게 사용할 수 있도록 사용자와 하드웨어 사이의 인터페이스를 제공하는 시스템이다. 2. 운영체제 목적 1) 자원 관리 : CPU, 메모리, I/O 장치 등의 하드웨어 자원과 소프트웨어 자원을 효율적으로 관리한다. 2) 자원 보호 : 프로그램이나 사용자가 CPU, 기억장치 등에 직접 접근하는 것을 막는다. 3) 인터페이스 제공 : 사용자의 명령을 전달하고 행해진 결과를 다시 사용자에게 전달해 준다. 3. 운영체제 기능 1) 프로세스 관리 : 프로세스는 실행 중인 프로그램을 말하며, 여러 개의 프로세스가 동시에 동작할 수 있.. 2024. 1. 2.
[JAVA] String, StringBuffer, StringBuilder, StringJoiner 차이 String, StringBuffer, StringBuilder 차이를 알아보려고 한다. 문자열을 다루기 위해서 함수는 기본적으로 String와 StringBuilder 컬렉션 메서드들은 암기해두는 것을 추천! 목차 1. 정의 및 함수 비교 2. StringBuffer와 StringBuilder 속도 비교 3. StringJoiner 존재 이유 1. 클래스 정의 및 함수 비교 String 클래스 : 불변하다는 특징 때문에, 문자열 변경 시 이전과 다른 메모리 주소에 새로운 문자열이 써진다. 주요 함수 함수 반환값 설명 charAt(int idx) char 인덱스에 존재하는 문자 반환 indexOf(char ch) indexOf(String str) int 앞에서부터 찾고자 하는 값의 인덱스를 반환 못찾을.. 2022. 10. 21.