Master Piece of jun/컴퓨터개론 26

memory management

memory management basic 프로그램은 반드시 메모리로 가져와야한다 메인메모리, 레지스터는 CPU가 directly access할 수 있는 저장소 한 clock당 micro instruction 발생 (Register access, write Register...) 메모리는 여러 cycle이 걸린다 cache ~ ran&cpu사이의 완충제 protection of memory Register access는 cpu clock에 일어난다 ~ cpu에 버금가는 access 속도를 갖는다 clock pulse가 1일때 연산시작 0→1가는 순간 Register access, 마이크로 인스트럭션, 메모리 access 여러개의 clock필요함 ⇒ 긴 시간이 필요하다 메모리 엑세스가 많아지면 시간이 많이..

Context Switching VS Swapping CPU와 메모리에 있는 프로세스 관리하기

Context Switching CPU에서 처리할 process를 변경하는 행위 save the state of the current process load the saved state for the new process switching(할일 바꾸기)는 딱히 유용한 일이 아님. overhead 메모리 save과정.. load과정중 메모리 엑세스 시간.. CPU scheduler 다음에 실행될 프로세스를 결정해주는 프로그램 Swapping 할당된 메인메모리 공간에서 프로세스를 빼내어 하드 Disk나 SSD등 back store에 현재 상태를 저장한 뒤, 다른 프로세스에게 할당하는것 (≠kill ~ 현재상태고뭐고 다 죽임) 필요한 이유 메모리 요구사항의 변화로 과도하게 할당된 메모리공간을 다른 프로세스에게..

multi-processing VS multi-thread

multi-processing에 비한 multi-thread의 장점 time consuming(태워 버리는)이 줄어듬 process 만드는 시간이 줄어들고 process간 통신시간이 줄어듬 Computer 자원 효율성 올라감 process의 text section, data등을 공유 (같은 프로세스니까) responsiveness(민감도, 문제 상황에도 괜찮은 능력)가 줄어듬 (단점) 3 스레드 중 하나가 오류 뜨면 나머지스레드도 다 오류 multi-processing은 하나의 프로세스가 오류나도 독립적으로 실행가능 vs multiplexing : 여러 라인 중 1을 택하는 것 (control sign.. 데이터 버스..). 여러 인풋 중 하나의 결과를 결정

Process와 thread

Process란 실행중인 프로그램 프로그램 실행을 위해선 반드시 메인메모리에 적재되어야한다. 하나의 프로세스내에 여러일이 동시에 일어난다 ⇒ 멀티 쓰레드 is a unit of work Process Concept process의 4요소 ~ 메모리에 로드된 프로그램 text section (program code) stack : current activity (return 주소, 지역변수) data section (전역변수) heap : for dynamic 할당 of memory during 프로세스 실행중 stack & heap ⇒ 프로그램의 현재상태 저장 process가 active하다 ⇒ 하나의 프로그램에서 생긴 프로세스라도 heap, stack의 모습이 다르다 ⇒ 현재 상태가 다르다. 레지스터,..

System Call / API(Application Programming Interface)

System Call (interface) OS 기능 사용을 목적으로 OS function을 요청하는 것 (OS와 유저 사이의 interface) kernel mode로의 전환이 일어난다. 1. direct system call OS의 세부적인 function들을 직접호출 2. Application Programming Interface OS의 세부적인 프로그래머가 요구할 OS의 기능을 수행하기위한 function 들의 set으로 high level 언어로 쓰인 Routine으로써 system 기능을 호출할 수 있는 interface이다. API를 쓰는 이유 portability가 좋음 : API는 시스템 펀션들을 set으로써 OS의 기능을 따로 정의 해두기 대문에 다른시스템에서도 이식성이 좋다. 즉, ..

I/O sub system (memory management of I/O)

I/O sub system memory management of I/O Buffering 일단 두고 나중에 처리 완충. 충격완화 ~ 너 완전 느리니까 두고간다 데이터를 Buffer 기억공간에 일정영역에 가져다 둔뒤 나중에 알아서 처리하도록 하는 것 I/O 처리시간과 CPU 처리 시간 사이의 속도 차이를 극복하기 위함 (충격 완화) caching 빠른 속도의 작은 처리 장치 Spooling 대기열 관리 ex) 프린트 대기열

Process와 Process Concept

Process란 실행중인 프로그램 프로그램 실행을 위해선 반드시 메인메모리에 적재되어야한다. 하나의 프로세스내에 여러일이 동시에 일어난다 ⇒ 멀티 쓰레드 is a unit of work Process Concept process의 4요소 ~ 메모리에 로드된 프로그램 text section (program code) stack : current activity (return 주소, 지역변수) data section (전역변수) heap : for dynamic 할당 of memory during 프로세스 실행중 stack & heap ⇒ 프로그램의 현재상태 저장 process가 active하다 ⇒ 하나의 프로그램에서 생긴 프로세스라도 heap, stack의 모습이 다르다 ⇒ 현재 상태가 다르다. 레지스터,..

듀얼 모드(User mode & Kernel mode)

듀얼 모드(User mode & Kernel mode) 유저모드와 커널모드 구분 어떤 instruction, 커널 모드에서만 실행가능 구분하는 이유 : OS 시스템과 자원을 유저프로세스가 함부로 침범하지 못하도록 OS를 보호 System function Call 유저 프로세스 실행중 시스템 기능이 필요할때 직접 시스템 기능을 사용하는 것이 아니라, system call을 이용함 kernel 모드 전환 → OS 기능 실행 → 다시 유저모드 복귀

Multi programming과 Time sharing

Multi programming 한 user(프로그램, 프로세스)는 동시에 I/O, CPU 처리를 할 수 없다. ⇒ 따라서 I/O, CPU에는 각각 다른 프로그램 실행가능 멀티프로그래밍, CPU가 처리할 job을 항상 하나는 처리할 수 있게 한다. ⇒ CPU가 놀지 않도록 (어떤 job 실행?? ~ job scheduling vs CPU scheduling : memory에 저장??) 동시 실행될 job들은 전부 memory에 있어야함 기다려야할때, OS는 다른 job으로 switch 해줌 Time sharing (multi tasking) 멀티프로그래밍을 구현하기 위한 기법 중 하나 CPU를 번갈아 가며 쓸 수 있도록하는 기법 CPU에 할당되는 jobs를 매우 자주 switch 함으로써 구현 inter..

Interrupt (vs PIO, pulling)

Interrupt Device가 I/O등의 operation을 완료했을때, Device controller가 CPU에게 그 사실을 전달하는 방법 Pulling 과의 비교 Pulling 방식은 CPU가 Device에 할당된 일을 완료했는지 직접 수시로 확인하는 방법이다. Interrupt가 더 좋은 이유 : CPU 입장에서 Device에 할당된 업무의 진행정도를 수시로 확인해야하는 비효율성을 줄이고 interrupt 전까지는 현재할당된 처리에만 집중할 수 있다. DMA(Direct Memory Access) Device의 버퍼로부터 CPU의 간섭없이 데이터를 직접 메인 메모리로 가져오는 것 I/O 장치의 빠른 정보전달을 위해 사용되며 이로써 CPU의 처리속도와 Device간으 ㅣ처리속도 차이를 줄일 수 있..

728x90