[개발일지] 18

Process1

프로세스란? - Process is a program in execution: 실행중인 프로그램 프로세스의 문맥(context): - CPU 수행 상태를 나타내는 하드웨어 문맥(program counter, 각종 register) - 프로세스의 주소 공간(code, data, stack) - 프로세스 관련 커널 자료 구조(PCB, Kernal stack) 프로세스의 상태: 프로세스는 상태(status)가 변경되며 수행된다 - Running: CPU를 잡고 instruction을 수행중인 상태 - Ready: CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족하고) - Blocked(wait, sleep): CPU를 주어도 당장 instruction을 수행할 수 없는 상태 Process 자신이 요청한..

System Structure & Program Execution 2

instruction: - 실행해야하는 기계어, 보통 4비트로 구성 - 순차적으로 기계어를 실행하다 반복문이나 함수를 만나면 점프뜀 - 매 기계어를 실행하고 interrupt 라인을 체크, interrupt가 있으면 실행해야 할 기계어를 잠시 멈추고 CPU를 OS에게 줌 - OS는 CPU를 받고 interrupt 상황에 따라 인터럽트 백터를 참고하여 해당 인터럽트를 처리하는 커널 함수(인터럽트 처리 루틴)을 실행함 - OS가 CPU를 가지고 있을때는 mode bit이 0, 모든 기계어 실행 가능(다른 사용자의 메모리나 I/O 디바이스 접근 가능) - 사용자 프로그램이 CPU를 가지고 있을땐 mode bit이 1, 제한된 기계어만 사용 가능 - 사용자 프로그램이 I/O 할일이 있을때 OS에게 요청해야 하는..

System Structure & Program Execution 1

운영체제에 들어가기 앞서 하드웨어가 어떻게 돌아가는지 공부 computer: CPU + Memory I/O device: disk, 키보드, 모니터 등 - I/O 디바이스는 각각 device controller 라는 하나의 작은 CPU를 가지고 있음 - I/O 디바이스는 CPU가 직접 관리하는 것이 아닌 device controller가 관리함 - CPU와 memory가 있듯 각각 I/O 디바이스도 local buffer가 존재 - CPU는 매 클럭 사이클마다 memory로부터 instruction을 읽어와서 실행함 - Interrupt line: CPU의 속도와 I/O 디바이스의 속도는 크게 차이가남, CPU가 프로그램 A의 instruction을 실행하고 있을때 disk로부터 값을 읽어와야 하면(I/..

Introduction to Operating Systems

운영체제 - 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프투웨어와 하드웨어를 연결하는 소프트웨어 계층 - 좁은 의미로는 커널이라고 함 - 넒은 의미로는 커널뿐 아니라 주변 시스템 유틸리티까지 포함 목적 - 하드웨어를 효율적으로 관리 자원: 프로세서, 기억장치, 입출력 장치 등 사용자간 형평성 있는 자원 분배 및 주어진 자원으로 최대한의 성능을 내는 것이 목표 - 컴퓨터 시스템을 효율적으로 관리(소프트웨어) - 여러 사용자가 하나의 컴퓨터를 사용해도 각자 다른 컴퓨터를 사용하는 듯한 느낌을 들게해줌 운영체제의 분류 - 동시 작업 가능 여부 1. 단일 작업: 한번의 하나의 작업만 처리, MS-DOS 2. 다중 작업: 동시에 두개 이상의 작업 처리, 리눅스, 윈도우 - 사용자 수 1. 단일 사..

[AWS 권한관련]SQL Error [1227]: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

AWS rds를 사용해서 db 작업을 하던 중, MySQL의 Event Scheduler, procedure등을 만들일이 있어서 set global event_scheduler=on; 이 명령을 실행했더니 SQL Error [1227]: Access denied; you need (at least one of) the SUPER privilege(s) for this operation 이런 오류가 떳다.... 확인 결과 AWS에는 모든 설정을 MySQL 인스턴스에 적용된 파라미터 그룹에서 설정해 주어야 한다고 한다 MySQL 인스턴스에 적용된 파라미터 그룹에서 event_scheduler의 값을 ON으로 바꾸어 주니 정상적으로 작동하였다 (구글링 결과 파라미터 그룹의 log_bin_trust_functi..

nosuchbeandefinitionexception no qualifying bean of type 에러

부트로 코딩을 하던 중 분명 @Service 애너테이션이 있는데 nosuchbeandefinitionexception 에러가 뜨면서 해당 객체를 찾지 못하였다고 나온다 스캔 범위가 잘못되었나? 라고 생각해서 패키지 구조를 보니 패키지 하나를 빼먹은게 있었다... com.peter.web.service 이여야 하는데 com.peter.service 라는 패키지에 @Service 객체를 만들었었다 패키지를 com.peter.web.service로 변경하니 해결이 되었다 nosuchbeandefinitionexception 이 나올 경우 1. @Component, @Controller, @Service 등의 애너테이션이 확실히 있는지 확인한다 2. 스캔 범위가 잘못되어있는지 확인한다(나처럼 엉뚱한 패키지에 클..

port 8080 required by tomcat v8.5 server at localhost is already in use 에러

어제까지만 해도 잘 되던 톰캣이 갑자기 port 8080 required by tomcat v8.5 server at localhost is already in use 라는 오류가 발생할 경우 톰캣 서버가 실행중인 상태에서 이클립스를 종료하게 되면 좀비 프로세스가 남아 있어서 해당 오류가 발생한다고 한다. 해결방법: 1. 관리자 권한으로 윈도우 파워쉘을 실행한다 단축키: 윈도우키 + x -> a 2. netstat -a -n -o -p tcp 입력 후 8080포트 번호를 쓰고있는 PID를 찾는다 3. taskkill /f /pid [PID] -> [PID] 자리에 찾은 PID를 입력한다 해당 프로세스가 정상적으로 종료되면 해결 완료 정상적으로 작동한다