본문 바로가기

Computer Science

(37)
반효경 운영체제 - 2.2 쓰레드 쓰레드의 정의 “A thread (opr lightweight process) is a baic unit of CPU utilization.” Thread의 구성 program counter - 작업 위치 register set - CPU의 작업 공간 stack space - 작업 위치에 따른 함수 호출 순서 Thread가 동료 thread와 공유하는 부분(task) code section data section OS resources 전통적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있다. 쓰레드는 하나의 프로세스에서 CPU가 실행하는 곳을 여러개, 프로그램 카운터를 여러개 두어 CPU 수행 단위를 여러 개로 두는 것을 멀티 쓰레드라고 함. 동일한..
반효경 운영체제 - 2.1 프로세스 프로세스의 개념 프로세스의 문맥 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter - 어디까지 실행했는가? 각종 Register 프로세스의 주소 공간 stack, data, code 등 메모리에 담겨있는 내용 프로세스 관련 커널 자료 구조 PCB (Process Control Block) Kernel stack System call 발생 시 프로세스 별 별도의 스택프로세스 관련 커널 자료 구조 프로세스의 상태 프로세스는 상태가 변경되며 수행된다. Running CPU를 잡고 instruction을 수행 중인 상태 Ready CPU를 기다리는 상태(메모리 등 다른 조건을 모두 만족) Blocked (wait, sleep) CPU를 주어도 당장 instruction을 수행할 수 없는 상..
반효경 운영체제 - 1. 시스템 구조와 프로그램 실행 컴퓨터 시스템 구조 Computer CPU 매 클럭 마다 메모리에서 인스트럭션을 하나씩 읽어서 수행 registers : 메모리보다 빠른 정보를 저장할 수 있는 공간 mode bit interrupt line : CPU는 메모리와만 상호작용함. 인스트럭션 실행 완료 후 interrupt line을 확인한다. Memory I/O device와 상호작용이 필요할 때, 프로그램은 권한을 OS에게 반환한다. 사용자 프로그램은 I/O 장치에 직접 접근 불가하므로 운영체제를 통해서만 요청을 수행할 수 있다. I/O 컨트롤러가 요청이 완료되었음을 확인하고 CPU에게 인터럽트를 발생시킨다. 입력된 buffer 메모리를 프로그램 메모리 공간에 copy한다. Timer OS가 cpu를 점유하다가, 사용자 프로그램에 타이머..
반효경 운영체제 - 0. 운영체제란? 운영체제의 정의 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제 (커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 : 커널을 포함한 주변 시스템 유틸리티를 포함한 개념(ex, 파일 탐색기 등) 운영 체제의 목적 User 측면 : 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공. 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공함. 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행. Hardware 측면 : 컴퓨터 시스템의 자원을 효율적으로 관리 프로세서, 기억장치, 입출력 장치 등을 효율적으로 관리 실행 중인 프로그램에게 짧은 시간 씩 CPU를 번갈아 할당 실행 중..
덧셈과 가산기(Adder), 컴퓨터의 사칙 연산 원리 (Java) 사칙 연산 없이 논리 게이트만으로 이진수(비트)의 덧셈을 구현해보겠습니다. 사칙연산 - 덧셈으로부터 컴퓨터의 사칙 연산은 덧셈에서부터 이루어집니다. 우리 컴퓨터가 덧셈은 할 줄 안다고 가정하면, 1. 뺄셈은 보수를 취한 덧셈으로 계산할 수 있습니다.(부호를 나타내는 최상위 비트) 2. 곱셈은 곱하는 수만큼의 덧셈을 반복이며, 이 경우 더한 수를 세주는 계수기(counter)와 가산기가 필요합니다. 3. 나눗셈은 몫이 [1]보다 작아질 때까지 나누어지는 수에서 나누는 수를 계속 빼면서 계수기로 횟수를 세면 됩니다. 그러나 위의 곱셈과 나눗셈은 간단한 수일 경우 문제가 없겠지만 long 단위의 수를 다루게 된다면, 계산 횟수가 기하급수적으로 늘어난다는 문제가 있습니다. 곱셈의 경우, 이진수의 계산이라는 가정..