# Unix SVR4의 프로세스 관리

OS대부분 기능을 유저 프로세스 안에서 실행하도록 함
각 프로세스가 리소스가 겹치지 않는 한, 운영체제 안에서 동시에 돌수 있는 기능을 갖는것
시스템은 커널모드에서 실행이 되고
커널모드에서 돌아가는 시스템 프로세스들은 각종 서비스들과 관리를 위한 프로세스로 구성
유저프로세스는 유저모드에서 실행되고
유저 프로그램과 원하는 유저 기능들이 실행된다

하나의 유저 프로세스는 2개의 메모리 영역으로 구성되는데
하나는 커널모드에서 동작하는 커널메모리, 다른건 유저모드에서 동작하는 유저메모리
유저 app가 실행되다가 시스템이 콜이 불리거나 예외발생, interrupt가 발생시 커널모드로 들어가서 커널이 동작



중간에 있는것이 svr5의 프로세스와 커널의 구조

프로세스는 os기능을 메모리 공간안에 포함. 유저 프로세스는 커널에 메모리 공간을 맵핑해서 커널 기능을 포함함
프로세스 1이 os기능을 수행하는 중에도 리소스만 겹치지 않으면 프로세스n은 os 기능을 실행가능
os기능을 단일 프로세스가 아닌 여러 프로세스가 동시에 접근가능한 장점이 있다.





한 프로세스의 메모리가 커널을 포함하고 있는 그림
user running하다가 interrupt발생시 커널 running 하고 다시 return하면 user 러닝 하다가..
이때 kernel 서비스 끝나면 cpu를 양보할 것인지 (preemption)할건지 결정 
kernel running 프로세스보다 우선순위가 높은 프로세스가 있다면 preempt state가 되고
예전에 preempt된 프로세스나 ready 큐에 있는것중 더 우선순위가 높은것을 user running 상태로 실행하게 된다.

점선은 preempted state나 ready state가 하나의 큐로 관리되고 있다는것을 표현






그냥 읽어보기



# 프로세스의 생성
프로세스의 생성은 fork()라는 커널 시스템 콜을 부름으로서 시작

os는 커널모드로 들어가고
프로세스 테이블에서 새 프로세스를 위한 슬롯 할당
unique한 프로세스 아이디를 child process에 할당
parent image를 child에게 copy, shared메모리는 제외 이건 포인터 연결해주면 됨
PCB를 복사해서 file까지 똑같이 소유하게 되는데 reference counter를 증가시켜서 새 프로세스가 파일을 소유하고 있다는걸 표시
child process 상태를 ready 상태로 만들어준다
child id 넘버를 parent에게 보내주고 child process 자체는 id를 0으로 넣어준다

이렇게 되면 만들어진 child process도 ready상태에 있기 때문에 다른 프로세스와 경쟁해서 run 상태가 될 수 있다



프로세서 생성 이후 디스패쳐는 부모나 자식이나 다른 프로세스를 실행하게 할 수 있다.
왜나하면 커널모드가 끝났기 때문에 ready 큐에서 하나 실행하는것


# 보안 문제

운영체제는 많은 특권을 가짐
일반적으로 프로세스는 유저에게 주어진 권한정도만 주어짐
높은 권한을 가진 유저는 시스템의 모든것을 RW 가능
중요한것은 이런 권한이 아무에게나 주어지는걸 막는것





# 시스템 접근 위헙
1. intruders
보통 해커, 크래커라고 불림
불법적으로 루트 권한을 갖는것이 목적. privilege를 높여서 원하는 자원을 얻는것이 목적

2. malicious software
바이러스, 백도어 등 호스트에게 접근해서 자원을 갖거나 파괴



사용패턴을 실시간 분석하고 있다가 잘못되면 알려주는 시스템
호스트 컴퓨터를 수정해서 만들거나 네트워크로 들어온 패킷을 분석해서 감지

sensors>analyzers>user interface
센서에서 패턴 발견시 확인해서 유저에게 알려주는

IDS는 사람 침입자를 감지해서 막는것이 주 목적, malicious software막는것은 부수적


막는 또 다른 방법으로는 인증이 있다.


인증을 통과해서 시스템 안으로 들어가면 모든 사람은 보안 정책에 따라 리소스에 접근
어떤사람이 어떻게 접근할수 있는지 정해짐
리눅스 - 모든 파일에 대해 access list가 있다.


외부에서 들어오는 모든 침입을 막도록 방화벽이 개발됨
보통 컴퓨터로 구성됨
네트워크로 들어오는 모든 접속에 대해 이곳을 통과하도록 구성되어있다.
민감한 정보를 가진 파일은 접근 불가하게 막는다

방화벽은 모든 트래픽이 통과하여 내부망으로 들어가게 함
허락된 트래픽만 통과하게 한다.
시스템 뚫는것 방어



#