OS 2

[운영체제] 멀티스레딩 환경에서 발생하는 문제와 Deadlock을 피하는 방법

멀티스레딩은 CPU 자원을 효율적으로 활용하고 작업 성능을 높이는 데 유용한 기술이다. 하지만 여러 스레드가 동시에 자원에 접근할 수 있는 환경에서는 데이터 충돌, 교착 상태(Deadlock) 등 여러 문제가 발생할 수 있습니다.교착 상태의 조건과 이를 예방하기 위한 전략들을 정리해보자.멀티스레딩멀티스레딩은 프로세스 내 작업을 여러 개의 스레드, 멀티스레드로 처리하는 기법이며 스레드끼리 서로 자원을 공유하기 때문에 효율성이 높다. 예를 들어 웹 요청을 처리할 때 새 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버의 경우 훨씬 적은 리소스를 소비하며, 한 스레드가 중단되어도 다른 스레드는 실행 상태일 수 있기 때문에 중단되지 않은 빠른 처리가 가능하다.멀티스레딩 환경에서 발생할 수 있는 문제1. 동기화..

OS 2025.06.08

[백엔드 면접 질문 준비] (6) JVM이란 무엇인가?

JVM이란?JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신(Virtual Machine)입니다. 이름 그대로 물리적인 컴퓨터가 아니라, 프로그램 위에서 동작하는 소프트웨어 기반의 컴퓨터라고 이해할 수 있습니다. 자바로 작성된 코드는 .java 파일로 저장된 뒤, 자바 컴파일러(javac)를 통해 바이트코드(.class)로 변환됩니다. 이 바이트코드는 OS나 하드웨어와 무관한 중간 형태의 코드이며, JVM이 이 바이트코드를 해석하거나 실행합니다. 즉, JVM은 자바 바이트코드를 받아서 실제로 프로그램이 동작하도록 만들어주는 역할을 합니다. 왜 JVM이 필요한가?JVM의 가장 큰 특징은 운영체제(OS)에 독립적이라는 점입니다. 자바는 "한 번 작성하면, 어디서나 실행..

Interview Question 2025.04.05