본문 바로가기
컴퓨터 지식

(운영체제,OS) 메모리 관리

by LiveData 2018. 12. 7.
반응형

Batch system(단일사용자)-jobs, Time-shared systems-user programs or tasks


Current activity including program counter,processor registers

Stack 일시적 데이터, Data section, Heap




PCB 프로세스들의 정보

  • 프로세스의 상태

  • Program counter

  • cpu register

  • scheduling memory

  • 메모리 관리 정보 

  • 회계 정보 

  • 입출력 상태 정보





Process scheduling

  • Maximize CPU use

  • quickly switch processes onto CPU for time sharing

  • Process scheuler select among available processes for next excution on cp

  • job queue : 시스템의 모든 포로세스의 집합
  • ready queue : 메인메모리에서 실행된 준비를 하고있는 집합
  • Device queues : I/O 장치를 기다리는 프로세스 집합
  • 프로세스는 큐를 옮겨다닐수 있다.





Medium-term scheduler

  • Remove process from memory, stor on dis,bring back in from disk to continue excution swapping





Context Switch

  • CPU switches to another process,the system must save the state of the old process and the saved state for the new process via a context switch






대부분의 시스템내의 프로세스들은 병행 실행될 수 있으며 반드시 동적으로 생성,제거될 수 있다.

  • Parent and children share all resources
  • Children share subset of parent`s resources
  • Parent and child share no reusources
  • Parent and children execute concurrently
  • Parent waits until children terminate


시스템 내에 프로세스들은 병행 실행될 수 있으며 반드시 동적생성,제거 될수 있음

병행 프로세스들은 독립적이거나 또는 협력적 프로세스 일수 있다

Cooperating process can affect or be affected by other processes


협력하는 이유 

  • information sharing
  • computation speedup
  • modularity(모듈성-바꾸고자할때 그부분만 바꿀수 있음)
  • convenience




Shared memory : 충돌 안일어남, 적은데이터 교환, 구현하기 쉬움





Message passing 

  • 최대 속도와 편이 제공
  • 구출할 때 시스템 호출이 필요접근은 일상적 메모리 접근으로 처리 커널의 도움 필요 없음
  • 접근은 일상적 메모리 접근으로 처리
  • 커널의 도움 필요 없음



독립 프로세스는 다른 프로세스에 영향을 안끼침

unbounded-buffer(무한버퍼) bounded-buffer(유한버퍼);




interprocess Comunication-Message passing

  • 메시지 전달 방식은 동일한 주소 공간을 공유하지 않고도 프로세스들이통신하고 그들의 동작을 동기화할 수 있도록 허용하는 기법
  • 프로세스 사이에 communication link를 설정 
  • 메시지 보내고 받음.






직접통신

  • 모든 프로세스 쌍 사이에 연결이 자동 구축
  • 서로 상대방 신원 알아야함.
  • 연결은 두개 이상의 프로세스들과 연관
  • 통신하는 프로세스들의 각 쌍 사이에는 정확히 하나의 연결이 존재




간접통신

  • 한 쌍의 프로세스 사이의 연결은 프로세스들이 공유 메일박스를 가질때만 구축
  • 연결은 두개 이상의 프로세스와 연관
  • 다수의 서로 다른 연결이 존재
  • 각 연결마다 하나의 메일박스가 할당.




Synchronizaation 

  • Blocking send 송신자는 메시지를 받을때까지 막는다
  • Blocking receive 메시지가 이용 가능할 때까지 수신 프로세스를 막음
  • Non-blocking send 송신 프로셋스가 메시지 보내가 작읍을 재시작
  • Non-blocking receive 수신하는 프로세스가 유효한 메시지또는 널을 받음






버퍼링

  • 메시지들은 큐에 저장됨
  • 무용량 - 큐길이 0 대기 메시지 없고 송신자는 수신자가 수신할때까지 기다림
  • 유한용량 - 큐가 다 찾을경우 기다려야함
  • 무한 용량






RPC  

  • Remote procedure call
  • 프로세스와 네트워크 시스템 사이의 추상 절차
  • Stubs 클라이언트쪽에 통신에 필요한 자세한 사항을 숨겨둠
  • 서버는 stub를 통해 메시지를 받고 배개변수를 풀고 받음






Pipes

  • 파이프는 두 프로세스가 통신할 수 있게 하는 전달자로 동작
  • 파이프는 생산자와 소비자 형태로 두 프로세스 간의 통신을 허용
  • 생산자는 파이프 한 종단 쓰기종단에 쓰고 소비자는 읽기종단에서 읽는다
  • 결국 단방향 통신 기능. 양방향 하고싶으면 2개의 파이프 필요
  • f[0] 읽기 종단 f[1] 쓰기종단으로 표현


반응형