본문 바로가기
728x90

개발공부 개발새발127

OS ) 인터럽트 인터럽트일반적인 컴퓨터 작업을 생각해보자.입출력 작업을 시작하기 위해,장치 드라이버는 장치 컨트롤러의 적절한 레지스터(각 장치의 레지스터, CPU 레지스터 아님)에 값을 적재.장치 컨트롤러가 레지스터 내용을 검사해서 수행할 작업을 결정.장치 컨트롤러가 장치의 로컬 버퍼로 데이터 전송을 시작하고, 완료되면 장치 드라이버에게 완료됐음을 알림.읽기 요청이라면 데이터 또는 데이터에 대한 포인터를 반환.쓰기라면 쓰기 완료나 장치 사용중 같은 상태 정보 반환.→ 그런데 어떻게 컨트롤러가 장치 드라이버에게 작업을 완료했다는 사실을 알릴까? : 인터럽트인터럽트하드웨어는 시스템 버스를 통해 CPU 에 신호를 보내 인터럽트를 발생시킨다.→ 시스템 버스 : 주요 구성 요소 사이의 주요 통신 경로.인터럽트 발생 시CPU 가 .. 2024. 12. 17.
OS ) 컴퓨터, 운영체제란 무엇인가. 컴퓨터 시스템의 4 요소하드웨어운영체제응용 프로그램사용자하드웨어구성중앙 처리 장치 (CPU)메모리 및 입출력 장치→ 계산용 자원 제공응용 프로그램종류워드 프로세서웹 브라우저컴파일러 등등…→ 사용자의 계산 문제를 해결하기 위해 **시스템 자원**이 어떻게 사용되어야 하는가를 정의💡 운영체제는 다른 프로그램이 유용한 작업을 할 수 있는 환경을 제공한다.사용자 관점에서의 컴퓨터(운영체제 → 사용자 모드)랩탑, 키보드, 모니터 마우스 등, 사용되는 인터페이스에 따라 달라진다. 즉, 사용하려는 **시스템**에 따라 달라진다.시스템은 한 사용자가 자원을 독점하도록 설계 되었다.사용자 관점에서의 운영체제의 목표사용자가 수행하는 작업에 “최대한의 효율” 을 내는 것.사용의 용이성을 위해 설계되며, 성능에도 약간 신경.. 2024. 12. 9.
Spring Boot 3.x ) 로그를 멋지게 처리하는 법 요즘 혼자 인증용 서버를 하나 만들고 있는데로그를 좀 더 멋지게 처리할 수 있는 방법이 있을까 해서 찾아보았다. AOP 와 핸들러를 이용하면실패/성공 로그 모두 멋지게 처리할 수 있다는 사실 !   일단 중요한 "실패 로그" 부터 어떻게 처리하는지 살펴보자!  실패 로그예외 상황 발생 시, throws 이전에 로그를 찍는 것보다 더 좋은 방법이 있다.그건 `@ControllerAdvice` 에서 실행하면 되는데, 일단 예외 수정부터 필요하다. DefaultExceptionimport lombok.Getter;import org.springframework.http.HttpStatus;import java.util.Map;@Getterpublic class DefaultException extends R.. 2024. 12. 6.
DB ) 모두 성공하지 않으면 모두 실패한다. 트랜잭션입니다. 트랜잭션이 종료될 때까지 “한 커넥션”을 계속 사용한다.그리고 일반적으로 “한 커넥션”은 “하나의 스레드”가 점유하여 처리한다.트랜잭션과 스레드의 관계동작트랜잭션은 일관성과 원자성을 보장하기 위해 시작(BEGIN) 부터 종료(COMMIT or ROLLBACK)를 하나의 작업 단위로 묶음.트랜잭션이 종료되기 전까지는 다른 작업이 해당 커넥션을 사용할 수 없음.커넥션은 트랜잭션 동안 고정트랜잭션이 시작되면, 애플리케이션은 “한 커넥션”을 고정하여 쿼리를 시작함.트랜잭션이 끝날 때까지 해당 커넥션은 다른 스레드나 작업에 할당되지 않음.하나의 스레드는 하나의 커넥션을..하나의 스레드는 하나의 커넥션을 점유한다.커넥션 풀을 사용한다면?트랜잭션이 종료된 후, 해당 커넥션은 풀로 반환 → 다른 스레드가 다시 커넥션을.. 2024. 11. 24.
OS ) 멀티 코어가 뭡니까? 멀티 코어라는 것은 여러 개의 코어를 가지고 있다는 뜻이다.예를 들어 쿼드 코어라면, 이론적으로는 최대 네 개의 프로세스가 동시 실행 가능하다는 것!어떻게 가능할까?멀티코어CPU 를 구성하는 “ 처리 장치”가 여러 개라는 뜻.처리 장치?ALU : 산술 연산, 논리 연산을 수행하는 장치. (계산기)레지스터 : 데이터와 명령어 일시 저장하는 고속 메모리. (프로세스가 올라가면 메모리에서 레지스터로 데이터를 옮겨와서 명령 실행함.)제어 유닛 : 명령어 해석하고 작업이 어떻게 처리될지 제어함. (제어 장치)L1 캐시 : 코어 내부에 있는 제일 빠른 메모리. (캐시)그러면 처리 장치가 여러개라는 뜻은?(ALU, 레지스터, 제어 유닛, L1 캐시) 가 여러 개라는 뜻.램(메모리)은 하나로 돌려 씁니다. ㅎㅎ그래서 .. 2024. 11. 20.
OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란? 시스템 콜운영체제의 서비스를 제공받기 위한 요청.일종의 인터럽트 (소프트웨어적 인터럽트)이중 모드CPU 가 명령어 처리 방식을 실행하는 모드를 사용자 모드/커널 모드로 구분하는 방식.사용자 모드.프로그램 실행 모드.입출력 명령 같은 HW 접근 명령어를 실행할 수 없음.그래서 사용자 모드로 실행되는 일반적인 프로그램은 자원에 접근 불가.커널 모드.운영체제 기능을 사용할 수 있는, 커널 영역의 코드를 실행할 수 있는 모드.운영체제는 커널 모드로 실행되니 자원에 접근 가능.사용자 모드로 실행되는 프로그램이 “시스템 자원”에 접근하기 위해 운영체제 서비스를 받으려면, 커널 모드로 전환되어야 함.이 때, 운영체제 서비스를 제공받기 위한 요청을 “시스템 호출” 이라고 함.타임 슬라이스CPU 를 사용하는 스레드(작업.. 2024. 10. 29.
728x90