2024/12/09 2

[CS] System Call

System Call 에 대해 정리하고자 한다. 1. 정의- 사용자 모드에서 실행되는 프로그램이 커널 모드에서 실행되는 운영 체제 기능을 호출하기 위한 인터페이스(여기서 사용자 모드는 애플리케이션 실행 모드를 의미하고 제한된 권한을 가진다. 한편 커널 모드는 운영 체제 실행 모드를 의미하고 시스템 자원에 대한 모든 권한을 가진다.) 2. 역할- 하드웨어 보호  > 애플리케이션이 직접 하드웨어에 접근하지 못하도록 하여 시스템 안정성을 보장한다.- 추상화 제공  > 운영 체제가 다양한 하드웨어를 추상화하여 애플리케이션이 동일한 자원으로 자원을 사용할 수 있도록 한다.- 자원 관리   > CPU, 메모리, 디스크, 네트워크 등 시스템 자원을 효율적으로 관리한다.- 보안  > 사용자 애플리케이션이 운영 체제의 ..

IT/CS 2024.12.09

[Java] volatile 키워드

Java 에서 사용하는 volatile 키워드에 대해 정리하고자 한다. 1. volatile 이란?- 코어가 변수의 값을 읽어올 때 캐시가 아닌 메모리에서 읽어오도록 변수 앞에 붙이는 키워드 2. 사용 목적- 가시성을 보장한다.(여기서 가시성이란, 공유 데이터를 사용한 다음 동기화 블록을 빠져나가고 나면 다른 스레드가 변경된 최신 값을 즉시 사용할 수 있게 해야 함을 의미한다.)- 변수 접근에 대한 동기화가 큰 오버헤드를 발생시키는 상황에서 대안이 될 수 있다. 3. 한계- 원자적 연산(읽기와 쓰기 작업이 단일 연산)에서만 사용 가능하다.- 스레드를 차단하지 않기 때문에 복잡한 상태 관리에는 적합하지 않다. 4. synchronized 키워드와의 비교- synchronized 키워드는 더 강력한 동기화 ..

IT/Java 2024.12.09