본문 바로가기

프론트엔드37

[CS] 운영체제 스케줄링 기본 및 알고리즘 이해 📖 운영체제 스케줄링 종류 ✅ 시분할 시스템 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템이며 다중 사용자도 지원한다 ✅ 멀티 태스킹 단일 CPU에서, 사람이 인지하기 힘든 시간 10 ~ 20ms 단위로 실행 응용 프로그램을 바꿔 여러 응용 프로그램이 동시에 실행하는 것처럼 보이게 하는 시스템. ✅ 멀티프로그래밍 최대한 CPU를 일정 시간당 많이 활용하는 시스템 CPU를 활용한다는 말의 의미를 알아보자면, 어떤 프로세스를 실행시키는데 레지스터나 캐시 같은 메모리가 아닌 SSD, HDD 같은 저장매체에서 데이터가 필요해 가져오는 동안 CPU가 대기를 하는 일이 발생한다면 그 시간 동안 비효율이 발생한다. 그래서 효율적으로 그 대기 시간 안에 다음 진행할 프로세스를 먼저.. 2023. 2. 19.
[CS] 프로세스 개념 이해 📖 프로세스 란? 실행 중인 프로그램을 프로세스라고 한다. 프로세스 : 메모리에 올려저서, 실행 중인 프로그램 코드 이미지(바이너리) : 실행 파일 응용 프로그램과 프로세스는 같은 말이 아니며 응용 프로그램은 여러 프로세스로 구성 가능하다. 예를 들어, 스마트폰에 최근 띄운 앱들을 확인하는 기능이 있는데 그렇게 띄워진 앱들을 다 프로세스라 할 수 있다. 프로세스의 실행과 정지도 운영체제가 관여를 하는데 이러한 운영체제 기능을 프로세스 스케줄링 이라고 한다. ✅ 프로세스 스케줄링 여러개의 프로세스가 띄어져 있을 때 어느 시점에서 어떤 프로세스를 실행시킬지 규칙 알고리즘이 필요했는데 그걸 가리켜 프로세스 스케줄러 라고 한다. ✅배치 처리 시스템 맨 처음 스케줄링 알고리즘에 채택된 자료구조 큐를 활용한 알고리.. 2023. 2. 19.
[CS] 운영체제 역할 정리 📖 운영체제 주요 역할 1. 시스템 자원(System Resource) 관리자의 역할 시스템 자원(System Resource)은 컴퓨터 하드웨어를 뜻한다. ✅ 컴퓨터 하드웨어 종류 CPU (중앙처리장치), Memory (DRAM, RAM), I/O Devices (입출력장치) : Monitor, Mouse, Keyboard, Network 저장매체 : SSD, HDD (하드디스크) 등이 있으며, 이러한 하드웨어들을 관리하는 게 운영체제이다. 이 말은 응용프로그램이 하드웨어를 직접적으로 제어하지 못하고 운영체제를 통해야 할 수 있다는 얘기가 된다. ✅ 운영체제가 없다면? CPU : 각 프로그램이 얼마나 CPU를 사용할지를 결정할 수는 없다. Memory : 각 프로그램이 어느 주소에 저장되어야 하는지, .. 2023. 2. 19.
[CS] 커널모드와 사용자모드 이해 📖 커널 모드와 사용자 모드 이해 ✅ 왜 프로그램은 OS별로 있을까? 각각의 운영체제마다 시스템 콜이 다르고 시스템 콜을 호출하는 API구현이 다르기 때문이다. JAVA 같은 경우 JDK를 각각의 운영체제에 맞게 설치해 줌으로써, 운영체제에 맞게 처리해 주기 때문에 자바 하나의 코드만 작성해도 여러 운영체제에 동작하게 할 수 있다. ✅ 사용자 모드와 커널 모드 컴퓨터에 영향을 미칠 수 있는 중요한 동작들은 운영체제에서만 처리하게 만들어 놨다. 파일을 읽거나 쓰거나 삭제하려면 시스템 콜을 통해서 커널에 요청을 하고 커널이 처리를 하는 방식이며, 응용프로그램이 직접 적으로 파일에 접근해 읽고 쓰고 삭제할 순 없다. 사용자 모드는 응용프로그램이 동작하는 것을 말하는데 중요한 동작이 있다면 커널에 요청하게 된다.. 2023. 2. 19.