목록전체 글 (121)
예지의 테크 로그포스 (Yeji's Tech Log Force)
프로세서 활용도 개선을 위해 제공된다. 대부분의 I/O장치가 프로세서보다 느리다. 이 때 프로세서가 대기해야 하므로 일시 중지 하면 프로세서를 낭비하는 것이다. 그래서 인터럽트한다. 사용자 코드에는 인터럽트 코드가 없다. cpu와 os가 인터럽트를 처리한다. 인터럽트 발생 시 pc값을 인터럽트 핸들러 프로그램의 시작 주소로 설정, 커널모드로 전환 인터럽트 있는지 체크 -> 프로세스 상태를 stack에 저장 -> 인터럽트 핸들러로 인터럽트 실행 -> stack을 참고해 원래 pc값으로 돌아오기 - 인터럽트를 이용해 I/O에 의해 발생하는 wait 시간을 효율적으로 사용할 수 있게 되었다. - 매 명령어의 수행을 마치고 나면 대기중인 인터럽트가 있는지 확인 한 후 처리한다. - 인터럽트는 시스템, 운영체제,..
Process란 운영체제가 프로그램을 실행하고 관리하는 단위, 개체를 의미한다. (Processor는 Cpu로, 헷갈리지 말 것ㅋㅋ!!) Process는 프로그램 실행코드, 데이터 영역, 스택, process control block으로 구성되어 있다. 반면 Thread는 Process처럼 별도의 실행 개체로 관리되는 것이 아니라 Process 내부에서 동시 실행(concurrent)을 지원하는 방식이다. 해당 Process가 실행 중(Running)일 때 그 프로세스 내부의 Thread들을 스케줄링하는 방식으로 동시 실행을 제공한다. Thread도 ready, running, blocked 상태를 가진다. 그러나 Thread에 suspend는 없다. Thread가 포함된 Process가 종료되거나, s..
-운영체제의 역할 1. 하나 이상의 하드웨어 리소스 활용 및 관리(프로세서, 메인 메모리 등) 2. 시스템 사용자에게 일련의 서비스 제공 3. 보조 메모리 및 I/O 장치 관리 운영체제란? 응용 프로그램 실행을 제어하는 프로그램. 애플리케이션과 하드웨어 간의 인터페이스. 컴퓨터 하드웨어 리소스를 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어의 모음이다. -운영체제가 제공하는 것 1. 프로그램 개발 환경 2. 프로그램 실행 3. I/O 디바이스 접근 (드라이버 접근) 4. 파일 접근 제어 5. 시스템 접근system access 6. 에러 감지 및 응답 7. 계정 관리 - 컴퓨터 시스템 내의 자원을 효율적으로 관리한다. - 프로그램 실행 시 오류 검사 및 복구를 지원한다. - 사용자나 ..
두 자연수의 최대공약수를 구하는 대표적 알고리즘. 특징: 자연수 A,B에서 A%B=R일 때 A,B의 최대공약수 == B,R의 최대공약수 예를 들어 A: 192와 B: 162의 최대공약수를 구할 때(GCD(192,162)) Level A B 1 192 162 2 162 30 3 30 12 4 12 6 즉, 192와162의 최대공약수는 12와 6의 최대공약수(즉, 6)과 동일하다. 따라서 재귀함수를 통해 R이 0이 아닌 동안 두 수를 나누도록 구현할 수 있다. def gcd(a, b): if a%b==0: return b return gcd(b, a%b) print(gcd(192,162))